Re: [Zope-CMF] Customising types with add views

2008-12-09 Thread yuppie
Martin Aspeli wrote:
 yuppie wrote:
 Martin Aspeli wrote:
 [...]

 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.
 You should be able to register the same add view twice. One registration 
 for the name Alpha and one for the name Beta.
 
 Sure. I was thinking more about the case of customising by copying the 
 FTI TTW.
 
 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 
 property?
 If people really have that problem we can decouple this later. For now I 
 can't see a need.
 
 I suspect it's YAGNI since the add view calls _setPortalTypeName() on 
 the newly created instance as well, so the resulting object will have 
 type Beta, not type Alpha.

Oops! I just realized that I didn't read your example correctly. I 
thought you would *want* to set Beta's fti.factory to something different.

As you noticed, using the same factory *and* add view for different 
portal types is supported. In fact that's the reason why we adapt the 
type info and can't use normal browser pages.

Cheers, Yuppie

___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

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


Re: [Zope-CMF] Customising types with add views

2008-12-08 Thread yuppie
Hi Martin!


Martin Aspeli wrote:
 [...]
 
 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.

You should be able to register the same add view twice. One registration 
for the name Alpha and one for the name Beta.

 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 
 property?

If people really have that problem we can decouple this later. For now I 
can't see a need.


Cheers,

Yuppie


___
Zope-CMF maillist  -  Zope-CMF@lists.zope.org
http://mail.zope.org/mailman/listinfo/zope-cmf

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


Re: [Zope-CMF] Customising types with add views

2008-12-08 Thread Martin Aspeli
yuppie wrote:
 Hi Martin!
 
 
 Martin Aspeli wrote:
 [...]

 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.
 
 You should be able to register the same add view twice. One registration 
 for the name Alpha and one for the name Beta.

Sure. I was thinking more about the case of customising by copying the 
FTI TTW.

 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 
 property?
 
 If people really have that problem we can decouple this later. For now I 
 can't see a need.

I suspect it's YAGNI since the add view calls _setPortalTypeName() on 
the newly created instance as well, so the resulting object will have 
type Beta, not type Alpha.

Martin

-- 
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
http://mail.zope.org/mailman/listinfo/zope-cmf

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