From c91edaaff2829e631f0fdc87f1b6f1fc845fba14 Mon Sep 17 00:00:00 2001
From: Sebastien Robin <seb@nexedi.com>
Date: Wed, 7 Apr 2004 15:22:37 +0000
Subject: [PATCH] added MultiItemsWidget.render_items patch

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@654 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Form/FormulatorPatch.py | 39 +++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/product/ERP5Form/FormulatorPatch.py b/product/ERP5Form/FormulatorPatch.py
index 784b551cbd..994d3329e6 100755
--- a/product/ERP5Form/FormulatorPatch.py
+++ b/product/ERP5Form/FormulatorPatch.py
@@ -322,6 +322,7 @@ def FloatValidator_validate(self, field, key, REQUEST):
         return value
     
     try:
+        LOG('FloatValidator.validate, value:', 0, value)
         if value.find(',') >= 0:
             value = value.replace(',','.')
         value = float(value)
@@ -330,3 +331,41 @@ def FloatValidator_validate(self, field, key, REQUEST):
     return value
 
 FloatValidator.validate = FloatValidator_validate
+
+from Products.Formulator.Widget import MultiItemsWidget
+
+def MultiItemsWidget_render_items(self, field, key, value, REQUEST):
+  # need to deal with single item selects
+  if type(value) is not type([]):
+      value = [value]
+
+  items = field.get_value('items',REQUEST=REQUEST) # The only thing changes, added request
+  css_class = field.get_value('css_class')
+  extra_item = field.get_value('extra_item')
+  rendered_items = []
+  for item in items:
+      try:
+          item_text, item_value = item
+      except ValueError:
+          item_text = item
+          item_value = item
+
+      if item_value in value:
+          rendered_item = self.render_selected_item(item_text,
+                                                    item_value,
+                                                    key,
+                                                    css_class,
+                                                    extra_item)
+      else:
+          rendered_item = self.render_item(item_text,
+                                           item_value,
+                                           key,
+                                           css_class,
+                                           extra_item)
+
+      rendered_items.append(rendered_item)
+
+  return rendered_items
+
+MultiItemsWidget.render_items = MultiItemsWidget_render_items
+
-- 
2.30.9