Welcome to the eleventh Zope 3 newsletter.  Information about Zope 3
  and newsletter contributions and suggestions can be found at the
  bottom of this newsletter.


  Encounter a term in this newsletter you don't know?  Try this
  glossary:  http://dev.zope.org/Zope3/NewsletterGlossary


- Stephan Richter has been doing some important work on
  documentation,  preparing for his SAMS Zope 3 book.  See the content
  so far at  http://dev.zope.org/Zope3/DevelCookbook

- Zope2 developers: Philipp von Weitershausen prepared slides for the
  Zope3  Rheinland sprint that discussed Zope3 from a Zope2
  developer's perspective.  See
  http://philikon.de/files/zope3-for-zope2-developers.sxi for an
  OpenOffice.org-format download

- Jake (a.k.a. BZ) announces a new Zope site,
  http://www.zopezone.com/, including a Zope3-specific forum.

JIM FULTON: A status update from the Zope Pope

Geddon report

  - Parentgeddon was completed. Context wrappers are no longer used to
    track object locations. Objects now keep references to their
    parents using __parent__ attributes.  See:


  - While working on parentgeddon, I changed the way object-lifecycle
    events are handled. See:




- The container API was simplified a bit:


- Adaptergeddon was completed. This is part of a larger project:


Adaptergeddon included:

    o Support for multi-adapters. Multi-adapters are adapters that
      adapt multiple objects at the same time.

    o Replacement of the View, Resource and Skin services with a
      single presentation service.

      This included recasting views as multi-adapters for objects and
      requests and recasting resources as request adapters.

      An important consequence of this change is that it is now
      possible to provide views that provide specific interfaces. This
      will allow a number of presentation frameworks (e.g. traversal
      and widgets) to be cleaned up a lot.

    o A major refactoring of the way interface relationships are

- Implementing containers has been simplified quite a bit. See




There is a new section in the programmers tutorial:


That documents how to create containers.

- We are eliminating many services as part of


    The sql connection service has been eliminated. We are working on
    removing the caching, interface and factory services.
    Site-management views will provide user-friendly interfaces for
    browsing and managing database connections, caches, interfaces and

Sprint Report

Bangalore sprint

      There was a very successful sprint in Bangalore, India December 4-19.


JAN SMITH: Melbourne Summer Sprint!

  [we received two sprint messages from Jan.  The first has the
  basics, and the second has an exciting update.]

Sprint announcement

    We are going to have a Melbourne Summer Sprint 4th - 9th February.
    Paying for Jim's air fare has been an Oz Zope community effort with
    contributions coming from zope businesses and some individuals.

    Wednesday 4th Feb - Friday 6th Feb - Zope 3 Tutorial workshop: For
    first time sprinters, attendance at the tutorials is a
    prerequisite. The tutorial will consist of three days of lecture
    and hands on sessions run by Jim Fulton. Python experience is
    required. All welcome to attend the tutorial

    Saturday 7th February - Monday 9th February Sprint days:
    Developers who have participated in a sprint do not have to attend
    the tutorial sessions.


Trinity College, Melbourne University, Victoria, Australia


    Melbourne University is 1 kilometre from city centre Facilities: a
    state-of-the-art Multi-media Room, a second sprinting room and a
    tiered Lecture Theatre There is low cost accommodation available
    at the sprint venue - Trinity College

    More information on the sprint:

Sprint update

    The Oz Zope community is excelling itself   As well as having
    enough pledges to pay for Jim Fulton's air fare from the US to
    Australia. We also have a funding pledge from Melbourne University
    which will enable  us to fly a second person to Australia.

    Regarding the second air fare, Jim Fulton and I had a couple of
    hours to choose who would use that second air fare. In deciding we
    first looked at the suggestions from the Oz Zope meetings and the
    mailing list. There had been requests to invite to this sprint one
    of the Lone developers also requests for user interface expert
    Paul Everett. As luck would have it, there is a Lone snow sprint
    in Austria the same week as our sprint so no Lone developers are
    available. Paul Everett reluctantly can't spare the time either he
    has a project deadline looming. We looked at the people actively
    working on Zope 3 and chose Garrett Smith from Chicago.

GODEFROID CHAPELLE: Page Template "usage" variable

  Usage in Page templates has been completed during the Rheinland
  Sprint organized by DZUG.

  The following text explains the motivation and the use of the usage
  variable. More information can be found in

The Usage Variable

    A skin must manage structural elements like navigation, tabs,
    location breadcrumbs... Skin pages need to show all or some of
    those elements.

      o An object view (as in the Rotterdam skin) has a lot of those
      structural elements.

      o In dialog-style pages, you don't want elements such as tabs,
      menus, and the location bar.

      o For the screen used in adding a new item, you also want many
      items to disappear, but also to add some information specific to
      this screen.

      o In error dialogs, the location bar doesn't work, because
      errors have no location.

    One option is to manage multiple versions of the master template
    and applying them as whole-page macros on the various pages.  But
    multiple master templates is cumbersome and error-prone.

    To solve this, the skin facility introduces a top-level TAL
    variable called 'usage'. The usage variable is there to allow you
    to maintain a unique template for a whole application. This
    variable has a value that sets different modes of operation. By
    testing usage, you can decide which blocks should be shown or
    hidden when rendering the template.

    Having a unique template eases to enforce a coherent UI and
    consistent look and feel by ensuring that structural elements do
    not move too much on the screen.

    The main way to set the value of 'usage' for a page is through the
    menu it is registered to. A menu is a set of conceptually related
    links to pages. When you click on one of those links, you should
    arrive to about the same type of UI with identical (or at least
    similar) information available. Getting usage from the menu will
    enforce (we hope) the coherence of the UI. Actually, if a page is
    registered to a menu, its usage value gets set from the usage
    value set on the menu through its ZCML directive.

    Anyway, usage can be overridden by initializing it through the
    page configuration (ZCML directive).

    The values of the 'usage' are chosen to describe broad categories
    rather than individual templates or elements.  These are the
    proposed values:

      o 'usage/objectview' is the usage when browsing contents.
      Example: folder contents.

      o 'usage/activitydialog' is the usage when you are modifying an
      object in any way.  Example: rename.

o 'usage/error' is self-explanatory.

      o 'usage/addingdialog' is used during the process of adding a
      new item.

    Those values must be registered through the
    <browser:usage name="usagevalue" /> ZCML directive.

The following directives share the usage attribute :

o browser:menu

o browser:view

o browser:pages

o browser:page

o browser:editform

o browser:subeditform

o browser:editwizard

o browser:addform

o browser:addwizard

o browser:schemadisplay

    The usage attribute can only be set as one of the registered usage

    As an example, the 'template.pt' master template in the
    'rotterdam' skin has the following block::

      <div tal:condition="usage/objectview"
           tal:repeat="structure view/tabs"></div>


  Please send Zope 3 news, and newsletter suggestions and requests, to
  [EMAIL PROTECTED], with "Zope 3 newsletter" somewhere in the subject
  line. As you can see above, both quick and lengthy news items are
  acceptable and desirable.


  The central place to find Zope 3 information is currently

  The Zope 3 mailing list is archived and managed at

  The Zope 3 development IRC channel, #zope3-dev at
  irc.openprojects.net is (strictly) for discussion of Zope 3
  development issues.

  Newsletters are (supposed to be) archived at

Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to