[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