[Erp5-report] r9825 - /erp5/trunk/products/ERP5Form/FormulatorPatch.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Sep 12 09:45:46 CEST 2006
Author: vincent
Date: Tue Sep 12 09:45:43 2006
New Revision: 9825
URL: http://svn.erp5.org?rev=9825&view=rev
Log:
Fix validators for multi- fields : add a marker field to be able to save the field value "nothing selected". Thanks to Rafael Monnerat for the patch.
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=9825&r1=9824&r2=9825&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/FormulatorPatch.py (original)
+++ erp5/trunk/products/ERP5Form/FormulatorPatch.py Tue Sep 12 09:45:43 2006
@@ -614,9 +614,9 @@
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
-
+
+ # Moved marked field to Render
+ # rendered_items.append(render_element('input', type='hidden', name="default_%s:int" % (key, ), value="0"))
return rendered_items
MultiItemsWidget.render_items = MultiItemsWidget_render_items
@@ -625,29 +625,48 @@
def MultiListWidget_render(self, field, key, value, REQUEST):
rendered_items = self.render_items(field, key, value, REQUEST)
- return render_element(
- 'select',
- name=key,
- multiple=None,
- css_class=field.get_value('css_class', REQUEST=REQUEST),
- size=field.get_value('size', REQUEST=REQUEST),
- contents=string.join(rendered_items, "\n"),
- extra=field.get_value('extra', REQUEST=REQUEST))
+ input_hidden = render_element('input', type='hidden', name="default_%s:int" % (key, ), value="0")
+ multi_list = render_element(
+ 'select',
+ name=key,
+ multiple=None,
+ css_class=field.get_value('css_class', REQUEST=REQUEST),
+ size=field.get_value('size', REQUEST=REQUEST),
+ contents=string.join(rendered_items, "\n"),
+ extra=field.get_value('extra', REQUEST=REQUEST))
+
+ return "\n".join([multi_list,input_hidden])
MultiListWidget.render = MultiListWidget_render
+
+from Products.Formulator.Widget import MultiCheckBoxWidget
+
+def MultiCheckBoxWidget_render(self, field, key, value, REQUEST):
+ rendered_items = self.render_items(field, key, value, REQUEST)
+ rendered_items.append(render_element('input', type='hidden', name="default_%s:int" % (key, ), value="0"))
+ orientation = field.get_value('orientation')
+ if orientation == 'horizontal':
+ return string.join(rendered_items, " ")
+ else:
+ return string.join(rendered_items, "<br />")
+
+MultiCheckBoxWidget.render = MultiCheckBoxWidget_render
from Products.Formulator.Widget import ListWidget
def ListWidget_render(self, field, key, value, REQUEST):
rendered_items = self.render_items(field, key, value, REQUEST)
- return render_element(
- 'select',
- name=key,
- css_class=field.get_value('css_class', REQUEST=REQUEST),
- size=field.get_value('size', REQUEST=REQUEST),
- contents=string.join(rendered_items, "\n"),
- extra=field.get_value('extra', REQUEST=REQUEST))
-
+ input_hidden = render_element('input', type='hidden', name="default_%s:int" % (key, ), value="0")
+ list_widget = render_element(
+ 'select',
+ name=key,
+ css_class=field.get_value('css_class', REQUEST=REQUEST),
+ size=field.get_value('size', REQUEST=REQUEST),
+ contents=string.join(rendered_items, "\n"),
+ extra=field.get_value('extra', REQUEST=REQUEST))
+
+ return "\n".join([list_widget,input_hidden])
+
ListWidget.render = ListWidget_render
# JPS - Subfield handling with listbox requires extension
More information about the Erp5-report
mailing list