[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