[Erp5-report] r16366 - /erp5/trunk/products/ERP5Type/Core/Folder.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Sep 14 14:12:53 CEST 2007
Author: seb
Date: Fri Sep 14 14:12:52 2007
New Revision: 16366
URL: http://svn.erp5.org?rev=16366&view=rev
Log:
- do some cleanup
- do not patch objectValues
- make the hbtree migration working again
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=16366&r1=16365&r2=16366&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py Fri Sep 14 14:12:52 2007
@@ -495,23 +495,6 @@
# this is the default way of working of ERP5 Folder.
BTreeFolder2Base.__init__(self, id)
- method_id_list = ["initBTrees", "manage_fixCount", "manage_cleanup",
- "getBatchObjectListing", "manage_object_workspace",
- "tpValues", "objectCount", "has_key", "objectIds",
- "objectItems", "objectMap", "objectIds_d", "objectMap_d",
- "keys", "values", "items", "hasObject", "get", "generateId",
- "__len__", "allowedContentTypes", "_delOb",
- "_getOb", "_setObject", "_initBTrees", "_populateFromFolder",
- "_fixCount", "_cleanup", "_setOb", "_checkId", "_delObject",]
-
-
- def _generatePluginMethod(self):
- """ Will generate alias to Tree method depending
- on configuration """
- for method_id in self.method_id_list:
- method_wrapper = FolderMethodWrapper(method_id)
- setattr(self, method_id, method_wrapper)
-
def initializeFolderHandler(self):
if self._folder_handler is None:
global folder_handler_dict
@@ -549,6 +532,8 @@
""" Define this folder use HBTree stucture """
self._isHBTree = True
self._isBTree = False
+ self._folder_handler = 'CMFHBTreeFolderHandler'
+ self.initBTrees()
def _setBTree(self,):
""" Define this folder use BTree stucture """
@@ -571,11 +556,6 @@
to be used with an hbtreefolder.
Then it will migrate foder from btree to hbtree.
"""
- if self._folder_handler is None:
- # make sure to have all method right defined
- self._folder_handler = CMFBTreeFolder
- #self._generatePluginMethod()
-
BUNDLE_COUNT = 10
# we may want to change all objects ids before migrating to new folder type
if migration_generate_id_method not in (None, ''):
@@ -626,7 +606,6 @@
id_list = list(self.objectIds())
self._former_folder_handler = self._folder_handler
self._setHBTree()
- self._folder_handler = CMFHBTreeFolder
# launch activity per bundle to copy/paste to hbtree
BUNDLE_COUNT = 100
for x in xrange(len(id_list) / BUNDLE_COUNT):
@@ -645,7 +624,8 @@
Move object from a btree container to
a hbtree one
"""
- getOb = self._former_folder_handler._getOb
+ global folder_handler_dict
+ getOb = folder_handler_dict[self._former_folder_handler]._getOb
setOb = self._setOb
for id in id_list:
obj = getOb(self, id)
@@ -1090,8 +1070,7 @@
if self._folder_handler is None:
self.initializeFolderHandler()
global folder_handler_dict
- folder_handler_dict[self._folder_handler].get('objectIds')(self, *args, **kw)
-
+ return folder_handler_dict[self._folder_handler].objectIds(self, *args, **kw)
# Overloading
security.declareProtected( Permissions.AccessContentsInformation,
@@ -1289,8 +1268,10 @@
candidate_method_id_list = []
for folder_class in (HBTreeFolder2Base, HBTreeFolder2, CMFHBTreeFolder):
+ # exclude objectValues because it is redefined here
+ # exclude get because it is not defined on OFSFolder
candidate_method_id_list.extend([x for x in folder_class.__dict__
- if callable(getattr(folder_class, x)) and not
- x in ('__getattr__','__init__', 'get')])
+ if callable(getattr(folder_class, x)) and not
+ x in ('__getattr__','__init__', 'get', 'objectValues')])
for method_id in candidate_method_id_list:
setattr(Folder, method_id, FolderMethodWrapper(method_id))
More information about the Erp5-report
mailing list