[Erp5-report] r13914 - /erp5/trunk/products/ERP5Form/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Apr 4 09:58:41 CEST 2007
Author: romain
Date: Wed Apr 4 09:58:39 2007
New Revision: 13914
URL: http://svn.erp5.org?rev=13914&view=rev
Log:
Add _get_user_input_value on Field, in order to improve compatibility between DateTimeField and ProxyField.
This method get in the REQUEST the input data entered by the user.
Modified:
erp5/trunk/products/ERP5Form/Form.py
erp5/trunk/products/ERP5Form/FormulatorPatch.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=13914&r1=13913&r2=13914&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/Form.py (original)
+++ erp5/trunk/products/ERP5Form/Form.py Wed Apr 4 09:58:39 2007
@@ -169,7 +169,7 @@
if value is not None:
return value
try:
- value = REQUEST.form[key]
+ value = self._get_user_input_value(key, REQUEST)
except (KeyError, AttributeError):
# fall back on default
return self.get_value('default', REQUEST=REQUEST) # It was missing on Formulator
Modified: erp5/trunk/products/ERP5Form/FormulatorPatch.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/FormulatorPatch.py?rev=13914&r1=13913&r2=13914&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/FormulatorPatch.py (original)
+++ erp5/trunk/products/ERP5Form/FormulatorPatch.py Wed Apr 4 09:58:39 2007
@@ -91,12 +91,19 @@
else:
return self.widget.render(self, key, value, REQUEST)
+def Field_get_user_input_value(self, key, REQUEST):
+ """
+ Try to get a value of the field from the REQUEST
+ """
+ return REQUEST.form[key]
+
Field.generate_field_key = Field_generate_field_key
Field.render = Field_render
Field.render_sub_field = Field_render_sub_field
Field.generate_subfield_key = Field_generate_subfield_key
Field.validate_sub_field = Field_validate_sub_field
Field._render_helper = Field_render_helper
+Field._get_user_input_value = Field_get_user_input_value
from Products.Formulator.Validator import SelectionValidator
from Products.Formulator.Validator import StringBaseValidator
@@ -693,21 +700,23 @@
# JPS - Subfield handling with listbox requires extension
from Products.Formulator.StandardFields import DateTimeField
+from Products.Formulator.Field import ZMIField
def DateTimeField_get_default(self, key, value, REQUEST):
- if value is not None:
- return value
- # if there is something in the request then return None
- # sub fields should pick up defaults themselves
- # XXX hasattr(REQUEST, 'form') seems useless, because REQUEST always has
- # a form property
- if REQUEST is not None and hasattr(REQUEST, 'form') and \
- REQUEST.form.has_key('subfield_%s_%s' % (key, 'year')):
- return None
- else:
- return self.get_value('default')
+ """
+ Use the default method
+ """
+ return ZMIField._get_default(self, key, value, REQUEST)
+
+def DateTimeField_get_user_input_value(self, key, REQUEST):
+ """
+ Try to get a value of the field from the REQUEST
+ """
+ if REQUEST.form['subfield_%s_%s' % (key, 'year')]:
+ return None
DateTimeField._get_default = DateTimeField_get_default
+DateTimeField._get_user_input_value = DateTimeField_get_user_input_value
from Products.Formulator.Widget import DateTimeWidget
old_date_time_widget_property_names = DateTimeWidget.property_names
Modified: erp5/trunk/products/ERP5Form/ProxyField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ProxyField.py?rev=13914&r1=13913&r2=13914&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ProxyField.py (original)
+++ erp5/trunk/products/ERP5Form/ProxyField.py Wed Apr 4 09:58:39 2007
@@ -473,3 +473,15 @@
if proxy_field is not None:
result = proxy_field.has_value(id)
return result
+
+ security.declareProtected('Access contents information', '_get_user_input_value')
+ def _get_user_input_value(self, key, REQUEST):
+ """
+ Try to get a value of the field from the REQUEST
+ """
+ proxy_field = self.getTemplateField()
+ if proxy_field is not None:
+ result = proxy_field._get_user_input_value(key, REQUEST)
+ else:
+ result = ZMIField._get_user_input_value(key, REQUEST)
+ return result
More information about the Erp5-report
mailing list