[Erp5-report] r6405 - /erp5/trunk/products/ERP5Form/

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 31 17:16:24 CEST 2006


Author: romain
Date: Fri Mar 31 17:16:20 2006
New Revision: 6405

URL: http://svn.erp5.org?rev=6405&view=rev
Log:
Bug fix: make ParallelistField compatible with ListField as sub-field.
Patch Formulator, in order to modify dynamically the size of the
ParallelistField.

Modified:
    erp5/trunk/products/ERP5Form/FormulatorPatch.py
    erp5/trunk/products/ERP5Form/ParallelListField.py

Modified: erp5/trunk/products/ERP5Form/FormulatorPatch.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/FormulatorPatch.py?rev=6405&r1=6404&r2=6405&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/FormulatorPatch.py (original)
+++ erp5/trunk/products/ERP5Form/FormulatorPatch.py Fri Mar 31 17:16:20 2006
@@ -563,6 +563,35 @@
   return rendered_items
 
 MultiItemsWidget.render_items = MultiItemsWidget_render_items
+
+from Products.Formulator.Widget import MultiListWidget
+
+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))
+
+MultiListWidget.render = MultiListWidget_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))
+
+ListWidget.render = ListWidget_render
 
 # JPS - Subfield handling with listbox requires extension
 from Products.Formulator.StandardFields import DateTimeField

Modified: erp5/trunk/products/ERP5Form/ParallelListField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ParallelListField.py?rev=6405&r1=6404&r2=6405&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ParallelListField.py (original)
+++ erp5/trunk/products/ERP5Form/ParallelListField.py Fri Mar 31 17:16:20 2006
@@ -36,7 +36,8 @@
 from AccessControl import ClassSecurityInfo
 from Products.Formulator.Errors import ValidationError
 
-class ParallelListWidget(Widget.MultiListWidget):
+class ParallelListWidget(Widget.MultiListWidget,
+                         Widget.ListWidget):
     """
       Make the MultilistField more usable for the user.
 
@@ -63,6 +64,7 @@
     """
 
     property_names = Widget.MultiListWidget.property_names + \
+                     Widget.ListWidget.property_names + \
       ['hash_script_id']
 
     hash_script_id = fields.StringField('hash_script_id',
@@ -70,6 +72,17 @@
                                description=(
         "The method to call to hash items list."),
                                required=0)
+
+    # delete double in order to keep a usable ZMI...
+    # XXX need to keep order !
+    #property_names = dict([(i,0) for i in property_names]).keys()
+    _v_dict = {}
+    _v_property_name_list = []
+    for property_name in property_names:
+      if not _v_dict.has_key(property_name):
+        _v_property_name_list.append(property_name)
+        _v_dict[property_name] = 1
+    property_names = _v_property_name_list
 
     def __init__(self):
       """




More information about the Erp5-report mailing list