[Erp5-report] r24984 - /erp5/trunk/products/ERP5Form/FormulatorPatch.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Dec 26 15:08:03 CET 2008


Author: jm
Date: Fri Dec 26 15:08:03 2008
New Revision: 24984

URL: http://svn.erp5.org?rev=24984&view=rev
Log:
Fix hidden checkboxes. HTML tag can be
<input type="hidden" name="field_your_foo" value="0"  />
which was interpreted as non-null due to missing ':int' suffix.

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=24984&r1=24983&r2=24984&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/FormulatorPatch.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/FormulatorPatch.py [utf8] Fri Dec 26 15:08:03 2008
@@ -255,13 +255,12 @@
 from Products.Formulator.Validator import BooleanValidator
 
 def BooleanValidator_validate(self, field, key, REQUEST):
-    result = REQUEST.get(key, REQUEST.get('default_%s' % (key, )))
-    if result is None:
-       raise KeyError, 'Field %s is not present in request object.' % (repr(field.id), )
-    if (not not result)==True:
-       return 1
-    else:
-       return 0
+  result = REQUEST.get(key, REQUEST.get('default_%s' % key))
+  if result is None:
+    raise KeyError('Field %r is not present in request object.' % field.id)
+  # XXX If the checkbox is hidden, Widget_render_hidden is used instead of
+  #     CheckBoxWidget_render, and ':int' suffix is missing.
+  return result and result != '0' and 1 or 0
 
 BooleanValidator.validate = BooleanValidator_validate
 




More information about the Erp5-report mailing list