[Erp5-report] r9327 - /erp5/trunk/products/ERP5Type/Document/Folder.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Aug 22 16:30:45 CEST 2006


Author: vincent
Date: Tue Aug 22 16:30:43 2006
New Revision: 9327

URL: http://svn.erp5.org?rev=9327&view=rev
Log:
Protect against non-string values in id_generator. This should fix most unit test steps in ERP5SyncML.

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

Modified: erp5/trunk/products/ERP5Type/Document/Folder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Document/Folder.py?rev=9327&r1=9326&r2=9327&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Document/Folder.py (original)
+++ erp5/trunk/products/ERP5Type/Document/Folder.py Tue Aug 22 16:30:43 2006
@@ -154,15 +154,19 @@
     if id_group is None:
       id_group = self.getIdGroup()
     if id_group in (None, 'None'):
-      idGenerator = getattr(self, self.getIdGenerator(), None)
-      if idGenerator is None:
+      id_generator = self.getIdGenerator()
+      if isinstance(id_generator, str):
+        idGenerator = getattr(self, id_generator, None)
+        if idGenerator is None:
+          idGenerator = self._generateNextId
+      else:
+        LOG('Folder.generateNewId', 0, '%s.id_generator is not a string. Falling back on default behaviour.' % (self.absolute_url(), ))
         idGenerator = self._generateNextId
       my_id = idGenerator()
       while self.hasContent(my_id):
         my_id = _generateNextId()
     else:
       my_id = str(self.portal_ids.generateNewId(id_group=id_group,default=default,method=method))
-
     return my_id
 
   security.declareProtected(Permissions.View, 'hasContent')




More information about the Erp5-report mailing list