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 [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.
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
_______________________________________________
Zope-Dev maillist - [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )