[Zope-dev] Zope 3 Newsletter 11

Gary Poster gary at zope.com
Tue Dec 23 09:21:54 EST 2003


WELCOME TO THE ZOPE 3 NEWSLETTER: ISSUE 11 (23 DECEMBER 2003)

   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.

GLOSSARY FOR THE UNINITIATED

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

NEWS SNIPPETS:

- 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:

     http://dev.zope.org/Zope3/ParentGeddon

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

     http://dev.zope.org/Zope3/SimplifyObjectLifecycleAndLocationEvents

     and

     http://dev.zope.org/Zope3/LocationRelatedEvents

   - The container API was simplified a bit:

     http://dev.zope.org/Zope3/ReplaceSetObjectWithSetitem

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

       http://dev.zope.org/Zope3/ComponentArchitectureSimplification

     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
       managed.

   - Implementing containers has been simplified quite a bit. See

       http://dev.zope.org/Zope3/SimplifyImplementingContainers

     and

       http://dev.zope.org/Zope3/ContainmentConstraints

     There is a new section in the programmers tutorial:

       http://dev.zope.org/Zope3/Zope3PythonProgrammerTutorialChapter1

     That documents how to create containers.

   - We are eliminating many services as part of

       http://dev.zope.org/Zope3/ComponentArchitectureSimplification

     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
     factories.

   Sprint Report

     Bangalore sprint

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

         http://dev.zope.org/Zope3/BangaloreSprint

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.

     Venue::

       Trinity College, Melbourne University, Victoria, Australia

       http://www.trinity.unimelb.edu.au/map/trinity_vista.shtml

     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:
     http://www.ozzope.org/2ndsprint/2ndOzSprintWiki

   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
   app/browser/skins/README.TXT

   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
     values.

     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>

CONTRIBUTING

   Please send Zope 3 news, and newsletter suggestions and requests, to
   gary at zope.com, with "Zope 3 newsletter" somewhere in the subject
   line. As you can see above, both quick and lengthy news items are
   acceptable and desirable.

MORE INFORMATION ON ZOPE 3

   The central place to find Zope 3 information is currently
   http://dev.zope.org/Zope3

   The Zope 3 mailing list is archived and managed at
   http://lists.zope.org/mailman/listinfo/zope3-dev

   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
   http://dev.zope.org/Zope3/Zope3Newsletter





More information about the Zope-Dev mailing list