[Erp5-report] r9332 - /erp5/trunk/products/ERP5Form/FormulatorPatch.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Aug 22 18:34:22 CEST 2006
Author: vincent
Date: Tue Aug 22 18:34:20 2006
New Revision: 9332
URL: http://svn.erp5.org?rev=9332&view=rev
Log:
Fix MultiListField and MultiCheckBoxField : "nothing is selected" state will be saved (distinguished from "not rendered" state).
Modified:
erp5/trunk/products/ERP5Form/FormulatorPatch.py
Modified: erp5/trunk/products/ERP5Form/FormulatorPatch.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/FormulatorPatch.py?rev=9332&r1=9331&r2=9332&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/FormulatorPatch.py (original)
+++ erp5/trunk/products/ERP5Form/FormulatorPatch.py Tue Aug 22 18:34:20 2006
@@ -180,12 +180,10 @@
from Products.Formulator.Validator import MultiSelectionValidator
def MultiSelectionValidator_validate(self, field, key, REQUEST):
- values = REQUEST.get(key)
- if values is None:
- if field.get_value('required'):
- raise Exception, 'Required field %s has not been transmitted. Check that all required fields are in visible groups.' % (repr(field.id), )
- else:
- raise KeyError, 'Field %s is not present in request object.' % (repr(field.id), )
+ if REQUEST.get('default_%s' % (key, )) is None:
+ LOG('MultiSelectionValidator_validate', 0, 'Field %s is not present in request object (marker field default_%s not found).' % (repr(field.id), key))
+ raise KeyError, 'Field %s is not present in request object (marker field default_%s not found).' % (repr(field.id), key)
+ values = REQUEST.get(key, [])
# NOTE: a hack to deal with single item selections
if type(values) is not type([]):
# put whatever we got in a list
@@ -576,7 +574,7 @@
# XXX -yo
selected_found = {}
- items = field.get_value('items',REQUEST=REQUEST, cell=getattr(REQUEST,'cell',None)) # The only thing changes, added request
+ items = field.get_value('items',REQUEST=REQUEST, cell=getattr(REQUEST,'cell',None)) # Added request
css_class = field.get_value('css_class')
extra_item = field.get_value('extra_item')
rendered_items = []
@@ -615,6 +613,8 @@
css_class,
extra_item)
rendered_items.append(rendered_item)
+
+ rendered_items.append(render_element('input', type='hidden', name="default_%s:int" % (key, ), value="0")) # Added marker field
return rendered_items
More information about the Erp5-report
mailing list