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

See http://collector.zope.org/CMF for bug reports and feature requests

Reply via email to