[Zope3-dev] IMPORTANT RFS: Through the Web Site Development
Stephan Richter
stephan.richter@tufts.edu
Mon, 13 Jan 2003 08:58:26 -0500
On Monday 13 January 2003 07:36, Jim Fulton wrote:
> I really need feedback on this. Comments are more than welcome.
> Feel free to comment here or on the wiki page.
Okay, I will give feedback via E-mail.
What I noticed is that we will have an awesome system for people that know
Python and understand the CA.
On the other hand we will loose about 70-80% (wild guess) of the current Zope
2 TTW developers, who do not know any Python and have difficulties to
understand it. I am pretty sure that there are many, many sites out there
that are written using one of the following two options:
1.) They only use the standard Content Objects that are provided by default in
Zope 2 (maybe they download another product or two). Then they use ZPT and
DTML to do all the logic. Note: I do not think that much Python Script is
used unless someone on the mailing list gave it to them.
2.) They use ZClasses (because they understand sort of OO programming) and use
scripts often DTML and ZPT, but maybe already some very small Python scripts
to do the logic.
Advanced Zope developers use:
3) They write their own Python products, but develop most of the look and feel
using the ZMI and therefore ZPT and DTML that lives in the ZODB.
While I think that group 3 is addressed nicely, Group 1 and 2 are not. The
current versions of ZPT Page and DTML Page are too weak (as intended when
originally implmented) to satisfy group 1, since you do not have access to
some of the interesting methods.
Example: I want to create a menu quickly. What I did on one site was to simply
take an OrderedFolder and put other OrderedFolder objects in it having a
senible title. Then I just called "of.objectValues('Ordered Folder')" and
displayed the titles of the sub-folders an voila I had my menu. This was a
2-minute task. How would I do that in Zope 3?
Addressing Group 2, let's say I want to quickly create a NewsItem object that
has a couple of properties and methods. In Zope 2 I would just create a
ZClass, add all the properties and create a couple of scripts for the methods
and I am done. If ZClasses weren't so unpredictable, this should be a
10-minute task. How would I do that in Zope 3? Note that writing a Python
module is **not** an option.
What I want to do is:
1. Create ContentObject that inherits from this and that.
2. Create properties in Content Object.
3. Create methods in Content Object.
4. Define security.
5. Register the Content Object.
A more Zope3ish way would be to define the interface doing step 1-3 and then
autogenerate the Content Object skeleton.
Until now I was not too worried about addressing end-user scenarios, but now
that the first alphas are coming out, we really should start considering
their use cases. Maybe a smart thing would be to go to the general Zope
mailinglist and ask people there what they do when they develop Zope sites.
Regards,
Stephan
--
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training