[Erp5-report] r8613 - /erp5/trunk/products/ERP5Type/Base.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Jul 19 20:41:30 CEST 2006
Author: yo
Date: Wed Jul 19 20:41:26 2006
New Revision: 8613
URL: http://svn.erp5.org?rev=8613&view=rev
Log:
Evaluate expressions for _categories when generating accessors for Base.
Modified:
erp5/trunk/products/ERP5Type/Base.py
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=8613&r1=8612&r2=8613&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Wed Jul 19 20:41:26 2006
@@ -457,9 +457,20 @@
generated = 1
portal_types = getToolByName(self, 'portal_types', None)
generated_bid = {}
+ econtext = createExpressionContext(self.getPortalObject())
for pid, ps in PropertySheet.__dict__.items():
if pid[0] != '_':
- for bid in getattr(ps, '_categories', ()):
+ base_category_list = []
+ for cat in getattr(ps, '_categories', ()):
+ if isinstance(cat, Expression):
+ result = cat(econtext)
+ if isinstance(result, (list, tuple)):
+ base_category_list.extend(result)
+ else:
+ base_category_list.append(result)
+ else:
+ base_category_list.append(cat)
+ for bid in base_category_list:
if bid not in generated_bid:
#LOG( "Create createRelatedValueAccessors %s" % bid,0,'')
createRelatedValueAccessors(Base, bid)
More information about the Erp5-report
mailing list