[Erp5-report] r14864 - in /erp5/trunk/products/ERP5Form: Form.py ProxyField.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Jun 18 19:55:11 CEST 2007
Author: romain
Date: Mon Jun 18 19:55:11 2007
New Revision: 14864
URL: http://svn.erp5.org?rev=14864&view=rev
Log:
Fix default value of proxy field.
If an accessor is called, it has to be based on the proxy field id, and not on
his template field.
Modified:
erp5/trunk/products/ERP5Form/Form.py
erp5/trunk/products/ERP5Form/ProxyField.py
Modified: erp5/trunk/products/ERP5Form/Form.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/Form.py?rev=14864&r1=14863&r2=14864&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/Form.py (original)
+++ erp5/trunk/products/ERP5Form/Form.py Mon Jun 18 19:55:11 2007
@@ -116,11 +116,17 @@
# For the 'default' value, we try to get a property value
# stored in the context, only if the field is prefixed with my_.
- if id == 'default' and self.id[:3] == 'my_':
+ REQUEST = get_request()
+ if REQUEST is not None:
+ field_id = REQUEST.get('%s_%s_id' % (self.id, id), self.id)
+ else:
+ field_id = self.id
+
+ if id == 'default' and field_id.startswith('my_'):
try:
form = self.aq_parent
ob = getattr(form, 'aq_parent', None)
- key = self.id[3:]
+ key = field_id[3:]
if value not in (None, ''):
# If a default value is defined on the field, it has precedence
value = ob.getProperty(key, d=value)
Modified: erp5/trunk/products/ERP5Form/ProxyField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ProxyField.py?rev=14864&r1=14863&r2=14864&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ProxyField.py (original)
+++ erp5/trunk/products/ERP5Form/ProxyField.py Mon Jun 18 19:55:11 2007
@@ -123,7 +123,7 @@
property_names = []
def validate(self, field, key, REQUEST):
- proxy_field = field.getTemplateField()
+ proxy_field = field.getRecursiveTemplateField()
try:
result = proxy_field.validator.validate(field, key, REQUEST)
except ValidationError, error:
@@ -456,6 +456,9 @@
else:
proxy_field = self.getTemplateField()
if proxy_field is not None:
+ REQUEST = get_request()
+ REQUEST.set('%s_%s_id' % (proxy_field.id, id),
+ REQUEST.get('%s_%s_id' % (self.id, id), self.id))
result = proxy_field.get_value(id, **kw)
return result
More information about the Erp5-report
mailing list