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

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Sep 25 16:17:33 CEST 2007


Author: vincent
Date: Tue Sep 25 16:17:33 2007
New Revision: 16607

URL: http://svn.erp5.org?rev=16607&view=rev
Log:
Do not use "getattr" to guess the folder type:
 - Object is wrapped in acquisition, so we can get attributes from its containers
 - Classes implemeting folder-ish objects *do* define those attributes with varying values (empty tuple on OFS.Folder, None on BTreeFolder, etc).
So the attribute presence must be grabbed from instance properties *only*.

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=16607&r1=16606&r2=16607&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py Tue Sep 25 16:17:33 2007
@@ -375,10 +375,7 @@
     return getattr(CMFBTreeFolder, id)
 
   def isApplicable(self, folder):
-    result = False
-    if getattr(folder, '_tree', None) is not None:
-      result = True
-    return result
+    return '_tree' in getattr(folder, '__dict__', tuple())
 
 class CMFHBTreeFolderHandler(FolderHandler):
 
@@ -389,10 +386,7 @@
     return getattr(CMFHBTreeFolder, id)
 
   def isApplicable(self, folder):
-    result = False
-    if getattr(folder, '_htree', None) is not None:
-      result = True
-    return result
+    return '_htree' in getattr(folder, '__dict__', tuple())
 
 class OFSFolderHandler(FolderHandler):
 
@@ -403,10 +397,7 @@
     return getattr(OFSFolder, id)
 
   def isApplicable(self, folder):
-    result = False
-    if getattr(folder, '_objects', None) is not None:
-      result = True
-    return result
+    return '_objects' in getattr(folder, '__dict__', tuple())
 
 global folder_handler_dict
 folder_handler_dict = {}




More information about the Erp5-report mailing list