Currently, we have this situation (on trunk):

  - Add views are looked up by evaluating the FTI add_view_expr

  - The default/conventional add_view_expr is


  - This will look for an adapter (context, request, fti) with name = 
fti.factory and return that as the add view

Let's consider a type Alpha that has a custom add form registered as 
such a (context, request, fti) adapter with name "Alpha". fti.factory is 
"Alpha", and there's a corresponding IFactory utility (with name "Alpha").

Now, let's say I want to create a new type Beta (e.g. by copying the FTI 
object TTW), based on Alpha. I want this to use Alpha's add form, but 
construct objects with portal_type Beta.

Is this possible? If I set Beta's fti.factory to be something other than 
"Alpha", then it won't find the add view, but if fti.factory is "Alpha" 
then the objects constructed will use Alpha's factory.

I can't quite decide whether this is a problem in real life or not, 
although it does seem a bit strange that the add view adapter name and 
the factory utility name have to be the same.

Would it make sense to decouple these, e.g. with a new "add_view_name" 


Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book

Zope-CMF maillist  -  Zope-CMF@lists.zope.org

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests

Reply via email to