[Zope-dev] Re: You can always document...

2006-06-16 Thread yuppie

Hi Chris!


Chris Withers wrote:

yuppie wrote:

# Support old-style product metadata. Older products may
# define attributes to name their permissions, meta_types,
# constructors, etc.
[followed by the code that interprets the 'methods' attribute]

So 'methods' is BBB code for constructors.


That depends on how you read the above. I'd say "methods" isn't 
deprecated ;-)


(or, put differently, how do you provide functions needed by an "add" 
template? Squishdot has a need for this in obtaining a list of the 
available MailHosts)


If these functions are only required by a specific template there is no 
need to add them to the global context. You can wrap the add form in a 
method and pass the functions (or better the result of the functions) as 
argument to the template. CMF's addConfiguredSiteForm does that e.g.:


http://svn.zope.org/CMF/trunk/CMFDefault/factory.py?rev=68622&view=auto


If the container allows to use views (by default that is not the case 
for generic Folders in Zope 2.9) there is a better solution: Use a Five 
view and add the functions to your view class. The ZCML version of 
registerClass allows to specify a Five view as add form.



Cheers,

Yuppie

___
Zope-Dev maillist  -  Zope-Dev@zope.org
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 )


[Zope-dev] Re: You can always document...

2006-06-16 Thread Chris Withers

yuppie wrote:

# Support old-style product metadata. Older products may
# define attributes to name their permissions, meta_types,
# constructors, etc.
[followed by the code that interprets the 'methods' attribute]

So 'methods' is BBB code for constructors.


That depends on how you read the above. I'd say "methods" isn't 
deprecated ;-)


(or, put differently, how do you provide functions needed by an "add" 
template? Squishdot has a need for this in obtaining a list of the 
available MailHosts)


cheers,

Chris

--
Simplistix - Content Management, Zope & Python Consulting
   - http://www.simplistix.co.uk

___
Zope-Dev maillist  -  Zope-Dev@zope.org
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 )


[Zope-dev] Re: You can always document...

2006-06-15 Thread yuppie

Hi Chris!


Chris Withers wrote:

yuppie wrote:
I believe the Hippocratic Oath should be followed in subjective cases 
like this.  "First, do no harm."


Cruft does harm. It discourages people who want to understand and 
improve Zope. And it encourages people to stick to bad coding habits.


As far as "methods" goes, I call bullshit on this. Simple documentation 
of what "methods" is used for probably would have sufficed...


This is how 'methods' is documented in OFS.Application::

# Look for an 'initialize' method in the product. If it does
# not exist, then this is an old product that has never been
# updated. In that case, we will analyze the product and
# build up enough information to do initialization manually.
[...]
# Support old-style product metadata. Older products may
# define attributes to name their permissions, meta_types,
# constructors, etc.
[followed by the code that interprets the 'methods' attribute]

So 'methods' is BBB code for constructors. Other use cases might work, 
but they were never officially supported. Note that using 'methods' was 
already 'old-style' 6 years ago.


Why do you want to have special support for monkey patching Folder? 
Which use cases justify to pollute the Folder API in that way?


This is Zope 2, namespace polution is _not_ something that's going to 
get fixed...


There were many attempts to fix this and the pollution would be much 
worse without those attempts. 'methods' was replaced by 'registerClass' 
to give constructors their own namespace: manage_addProduct.



Cheers,

Yuppie


___
Zope-Dev maillist  -  Zope-Dev@zope.org
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 )