[Erp5-report] r16307 - /erp5/trunk/products/ERP5Type/Core/Folder.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Sep 12 17:35:36 CEST 2007


Author: aurel
Date: Wed Sep 12 17:35:36 2007
New Revision: 16307

URL: http://svn.erp5.org?rev=16307&view=rev
Log:
fix import
only generate plugin method for HBTreeFolder thus avoiding overriding
method of some folder wich are not Btree
and some method must always called the one CMFBTree


Modified:
    erp5/trunk/products/ERP5Type/Core/Folder.py

Modified: erp5/trunk/products/ERP5Type/Core/Folder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/Folder.py?rev=16307&r1=16306&r2=16307&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py Wed Sep 12 17:35:36 2007
@@ -64,7 +64,7 @@
 
 import os
 
-from zLOG import LOG, PROBLEM
+from zLOG import LOG, PROBLEM, WARNING
 import warnings
 
 REINDEX_SPLIT_COUNT = 100 # if folder containes more than this, reindexing should be splitted.
@@ -435,14 +435,19 @@
     if self._plugin is None:
       if self._isHBTree:
         self._plugin = CMFHBTreeFolder
+        self._generatePluginMethod()
       elif self._isBTree:
         self._plugin = CMFBTreeFolder
       else:
-        raise ValueError, "No plugin defined"
-      self._generatePluginMethod()
+        raise ValueError, 'No plugin defined'
       self._plugin.__init__(self, self.id)
     return FolderMixIn.newContent(self, *args, **kw)
 
+  security.declareProtected( Permissions.ManagePortal, 'migrateToHBTree' )
+  def resetPlugin(self):
+    """ reset plugin attribute """
+    self._plugin = None
+    
   security.declareProtected(Permissions.View, 'isBTree')
   def isBTree(self):
     """ Return if folder is a BTree or not """
@@ -925,12 +930,8 @@
     def _getVisibleAllowedContentTypeList():
       hidden_type_list = portal.portal_types.getTypeInfo(self)\
                                               .getHiddenContentTypeList()
-      try:
-        return [ ti.id for ti in self._plugin.allowedContentTypes(self)
-                 if ti.id not in hidden_type_list ]
-      except AttributeError:
-        return [ ti.id for ti in CMFBTreeFolder.allowedContentTypes(self)
-                 if ti.id not in hidden_type_list ]
+      return [ ti.id for ti in CMFBTreeFolder.allowedContentTypes(self)
+               if ti.id not in hidden_type_list ]
 
     user = str(_getAuthenticatedUser(self))
     portal_type = self.getPortalType()
@@ -974,10 +975,7 @@
       # account i18n into consideration.
       # XXX So sorting should be done in skins, after translation is performed.
       def compareTypes(a, b): return cmp(a.title or a.id, b.title or b.id)
-      try:
-        type_list = self._plugin.allowedContentTypes(self)
-      except AttributeError:
-        type_list = CMFBTreeFolder.allowedContentTypes(self)
+      type_list = CMFBTreeFolder.allowedContentTypes(self)
       type_list.sort(compareTypes)
       return ['/'.join(x.getPhysicalPath()) for x in type_list]
 




More information about the Erp5-report mailing list