Am 03.06.2009 um 10:12 schrieb Wichert Akkerman:
> There are two reasons I want to block creation of the object:
> performance, and user interface. The last one is more critical: the
> add-item menus used in Plone (and I suspect CMF as well) look for
> all object types that can be constructed in the current location.
> Obviously you do not want to do that by creating all possible
> objects and testing if you can add them to the container, so we need
> a way to test if creating an object and adding it to the current
> container is allowed without creating objects.
I agree with you on the UI aspect! In which case, surely you should be
looking to set a precondition on checkFactory?
def __call__(container, name, object):
"""Test whether container setitem arguments are valid.
Raise zope.interface.Invalid if the object is invalid.
def factory(container, name, factory):
"""Test whether objects provided by the factory are acceptable
Return a boolean value.
It looks to me like the factory method is the place to do the
checking. But I guess the problem is integrating this with the
Zope-CMF maillist - Zope-CMF@lists.zope.org
See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests