Hi Christian!
Christian Heimes wrote:
CMF 1.5's implementation of PortalFolder conflicts with CMFBTreeFolder.
CMF 1.4:
class PortalFolder(DynamicType, CMFCatalogAware, Folder)
CMF 1.5:
class PortalFolder(DynamicType, CMFCatalogAware, OrderedFolder)
BTreeFolder2:
class CMFBTreeFolder(BTreeFolder2Base, PortalFolder)
traceback:
File
"/opt/zope/instances/plone21z28cmf15/Products/ATContentTypes/content/base.py",
line 312, in processForm
self.setId(new_id)
File "/opt/zope/instances/plone21/Products/Archetypes/BaseObject.py",
line 231, in setId
parent.manage_renameObject(
File
"/opt/zope/releases/Zope-2_8-branch/lib/python/OFS/OrderSupport.py",
line 255, in manage_renameObject
old_position = self.getObjectPosition(id)
File
"/opt/zope/releases/Zope-2_8-branch/lib/python/OFS/OrderSupport.py",
line 222, in getObjectPosition
return ids.index(id)
AttributeError: 'OOBTreeItems' object has no attribute 'index'
As you can see CMFBTreeFolder doesn't work any more because PortalFolder
is now subclassed from OrderedFolder. The changes to PortalFolder are
*not* backward compatible. IMO they should be reverted and an
OrderedPortalFolder class should be created for people how like to have
ordered folders in CMF.
First of all CMF 1.5.2 has to be backwards compatible to CMF 1.5.0 and
1.5.1, so reverting that change is no option.
I propose to override manage_renameObject in PortalFolder with code that
works for OrderedFolder *and* CMFBTreeFolder.
Cheers,
Yuppie
BTW: I'm not at all happy with the fact that Zope 2.8 ships with
CMFBTreeFolder. That circular dependency is a pain to maintain. Maybe we
should move CMFBTreeFolder to a CMF product.
_______________________________________________
Zope-CMF maillist - [email protected]
http://mail.zope.org/mailman/listinfo/zope-cmf
See http://collector.zope.org/CMF for bug reports and feature requests