Re: [Zope-dev] Manipulating Meta-Type Global Add list on per-instance basis
Josh Zeidner <jmz_phylogenic@hotmail.com> asks:
I am currently trying to define a Z-Class that inherits from Object Manager that has the special behavior of being able to change its "allowable sub-objects" on a per-instance basis.
*****************
ex.
I instantiate the class at a particular location I want this object to only be able to contain objects of type "AppleObject" and "OrangeObject".
I instantiate the class at another location and I want this object to only contain objects of type "LemonObject" and "LimeObject".
note that the difference here is that both of the containers are of the same type.
*************
is it possible to have this flexibility after the ZClass has been defined?
If you are defining the interface (rather than accepting the default "Contents" view), then you can do something like:: <select name="toAdd"> <dtml-in "filtered_meta_types( AUTHENTICATED_USER )" mapping> <dtml-if "name in allowed_types"> <option value="&dtml-name;"> <dtml-var name> </dtml-if> </dtml-in> </select> where 'allowed_types' is a tokens/lines property of the instance. Making this happen in the stock management interface is trickier -- you need to overried either all_meta_types(), but finding the list of possible types, so that the list you return contains the dictionaries required by filtered_meta_types(). I can't see easily off hand how to do this from within a Python Method -- I think I would have to drop down to an External Method, or create a new Python base class to implement this. Tres. -- ========================================================= Tres Seaver tseaver@palladion.com 713-523-6582 Palladion Software http://www.palladion.com
participants (1)
-
Tres Seaver