[Erp5-report] r30752 - /erp5/trunk/products/ERP5Type/Utils.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Nov 18 19:00:36 CET 2009


Author: seb
Date: Wed Nov 18 19:00:35 2009
New Revision: 30752

URL: http://svn.erp5.org?rev=30752&view=rev
Log:
too many getter/setters/testers were generated in the case
of group type method (like isResourceType). Because of this,
_aq_dynamic was sometimes failing with maximum recursion depth

Modified:
    erp5/trunk/products/ERP5Type/Utils.py

Modified: erp5/trunk/products/ERP5Type/Utils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Utils.py?rev=30752&r1=30751&r2=30752&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Utils.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Utils.py [utf8] Wed Nov 18 19:00:35 2009
@@ -1603,14 +1603,14 @@
 
   ######################################################
   # Create Portal Category Type Accessors.
-  if prop.get('group_type'):
+  if prop['type'] == 'group_type':
     createGroupTypeAccessors(property_holder, prop,
                              read_permission=read_permission,
                              portal=portal)
 
   ######################################################
   # Create Getters
-  if prop.has_key('acquisition_base_category'):
+  elif prop.has_key('acquisition_base_category'):
     # Create getters for an acquired property
     # XXXX Missing Boolean accessor
     accessor_args = (
@@ -1880,7 +1880,10 @@
       property_holder.registerAccessor(accessor_name, id, Base.Getter, accessor_args)
   ######################################################
   # Create Setters
-  if prop['type'] in list_types or prop.get('multivalued', 0):
+  if prop['type'] == 'group_type':
+    # No setter
+    pass
+  elif prop['type'] in list_types or prop.get('multivalued', 0):
     # Create setters for a list property by aliasing
     setter_name = 'set' + UpperCase(id)
     if not hasattr(property_holder, setter_name):
@@ -1996,7 +1999,10 @@
       property_holder.registerAccessor(setter_name, id, Base.Setter, accessor_args)
   ######################################################
   # Create testers
-  if prop['type'] == 'content':
+  if prop['type'] == 'group_type':
+    # No testters
+    pass
+  elif prop['type'] == 'content':
     # XXX This approach is wrong because testers for all properties
     # should be created upfront rather than on demand
     accessor_args = (prop['type'], prop.get('storage_id'))




More information about the Erp5-report mailing list