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)

class CMFBTreeFolder(BTreeFolder2Base, PortalFolder)

File "/opt/zope/instances/plone21z28cmf15/Products/ATContentTypes/content/base.py", line 312, in processForm
File "/opt/zope/instances/plone21/Products/Archetypes/BaseObject.py", line 231, in setId
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.


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

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

Reply via email to