hi there,

i'm developing a product agains the current plone 3.0 bundle and want to convert the base class of an existing AT-based content type from BaseFolder to ATBTreeFolder because it will need to hold several thousand objects.

i did this by simply replacing `BaseFolder` with `ATBTreeFolder` in the class like so:

{{{
-from Products.Archetypes.atapi import BaseFolderSchema, BaseFolder
+from Products.ATContentTypes.content.folder import ATBTreeFolder
+from Products.ATContentTypes.content.folder import ATBTreeFolderSchema
[...]
-Country_schema = BaseFolderSchema.copy() + \
+Country_schema = ATBTreeFolderSchema.copy() + \
     schema.copy()
[...]
-class Country(BaseFolder):
+class Country(ATCTBTreeFolder):
     """
     """
     security = ClassSecurityInfo()
-    __implements__ = (getattr(BaseFolder,'__implements__',()),)
+    __implements__ = (getattr(ATCTBTreeFolder,'__implements__',()),)
}}}

however, now i get an `AttributeError: getAvailableViewMethods` when attempting to access its base view or `folder_contents`.

i found this thread on plone.org [1] where alec mitchell mentions:

>>> The issue is that the UI for Folders in plone 2.1 expects the folders to use the CMFDynamicViewFTI which provides some methods which are unavailable on the Scriptable FTI in use here. The workaround would be to use a folder type which does not implement the BrowserDefaultMixin as the basis for your Scriptable FTI.

other than that i got nothing... any ideas? it's fairly imperative that i get this type converted because soon the first data will be entered into the production site and i know from experience that it's not possible to switch the baseclass for existing content w/o actually recreating it (which would be quite a hassle...)

any pointers are greatly appreciated, thanks for reading!

cheers,

tom

[1] http://plone.org/documentation/how-to/pre-populated-folder
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers

Reply via email to