Working on the five:registerClass directive for Five 1.2 and Zope 2.9 I had a closer look at the product initialization code.

I propose the following modifications for the dicts in Products.meta_types (set by registerClass):

1.) 'action' key:

I'd like to give empty 'action' values a special meaning: The meta_type is not visible in the add drop down in the ZMI.

The five:registerClass directive allows to set empty 'action' values.

This would resolve http://www.zope.org/Collectors/Zope/1885 .

Filtering out meta_types with empty 'action' values is a two line change in main.dtml. I'd like to make that change also on the 2.8 branch to enable that feature for 2.8.5 with Five 1.2.

2.) 'interfaces' key:

Does currently only contain oldstyle interfaces. The code in OFS.ObjectManager that uses that key works also with z3 interfaces. I'd like to add z3 interfaces to the value of that key. That would e.g. allow to set only new style interfaces on catalog index classes.

3.) 'product' key:

AFAICS it isn't used in Zope itself. I'd like to add a note that it might be removed in a future version.

4.) related cleanup:

Application.install_product has some backwards compatibility code for products that have initialization code outside the 'initialize' method of their __init__.py. This is deprecated at least for 5 years. I'd like to add explicit deprecation warnings on the 2.8 branch and to remove that code for Zope 2.9.

This isn't much work, it can all be done in time for the Zope 2.9 beta.

Any feedback is welcome. If there are no objections, I'll make the changes as proposed.



Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to