[Erp5-report] r20637 - /erp5/trunk/products/ERP5Form/ListBox.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Apr 18 02:19:50 CEST 2008
Author: jp
Date: Fri Apr 18 02:19:50 2008
New Revision: 20637
URL: http://svn.erp5.org?rev=20637&view=rev
Log:
Only use getObject if needed.
Modified:
erp5/trunk/products/ERP5Form/ListBox.py
Modified: erp5/trunk/products/ERP5Form/ListBox.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ListBox.py?rev=20637&r1=20636&r2=20637&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ListBox.py (original)
+++ erp5/trunk/products/ERP5Form/ListBox.py Fri Apr 18 02:19:50 2008
@@ -1925,7 +1925,7 @@
processed_value = original_value
else:
# This is an usual line.
- obj = self.getObject()
+ obj = None # Only evaluate if needed
brain = self.getBrain()
# Use a widget, if any.
@@ -1934,37 +1934,40 @@
if editable_field is not None:
tales = editable_field.tales.get('default', '')
if tales:
+ if obj is None: obj = self.getObject()
original_value = editable_field.__of__(obj).get_value('default',
cell=brain)
processed_value = original_value
# If a tales expression is not defined, get a skin, an accessor or a property.
if not tales:
- if brain is not obj and getattr(aq_self(brain), alias, None) is not None:
+ if (obj is None or brain is not obj) and getattr(aq_self(brain), alias, None) is not None:
original_value = getattr(brain, alias)
processed_value = original_value
- elif obj is not None:
- try:
- # Get the trailing part.
+ else:
+ obj = self.getObject()
+ if obj is not None:
try:
- property_id = sql[sql.rindex('.') + 1:]
- except ValueError:
- property_id = sql
-
- try:
- original_value = obj.getProperty(property_id, _marker)
- if original_value is _marker:
- raise AttributeError, property_id
- processed_value = original_value
- except AttributeError:
- original_value = getattr(obj, property_id, None)
- processed_value = original_value
- except (AttributeError, KeyError, Unauthorized):
+ # Get the trailing part.
+ try:
+ property_id = sql[sql.rindex('.') + 1:]
+ except ValueError:
+ property_id = sql
+
+ try:
+ original_value = obj.getProperty(property_id, _marker)
+ if original_value is _marker:
+ raise AttributeError, property_id
+ processed_value = original_value
+ except AttributeError:
+ original_value = getattr(obj, property_id, None)
+ processed_value = original_value
+ except (AttributeError, KeyError, Unauthorized):
+ original_value = None
+ processed_value = 'Could not evaluate %s' % property_id
+ else:
original_value = None
- processed_value = 'Could not evaluate %s' % property_id
- else:
- original_value = None
- processed_value = 'Object does not exist'
+ processed_value = 'Object does not exist'
# If the value is callable, evaluate it.
if callable(original_value):
More information about the Erp5-report
mailing list