From 5cbea64b02e645792da9e0de8cfea5de0eba1ac7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Sat, 11 Mar 2006 19:26:38 +0000
Subject: [PATCH] In list mode, if we have an editable column, display the
 corresponding value from 'items' of the subfield

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@6076 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5Form/ListBox.py | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/product/ERP5Form/ListBox.py b/product/ERP5Form/ListBox.py
index e301e5bbd1..9a2601de2a 100755
--- a/product/ERP5Form/ListBox.py
+++ b/product/ERP5Form/ListBox.py
@@ -494,7 +494,7 @@ class ListBoxWidget(Widget.Widget):
         """
           Returns
         """
-        if REQUEST is None: REQUEST=get_request()        
+        if REQUEST is None: REQUEST=get_request()
         return self.render(field, key, value, REQUEST, render_format=render_format)
 
     def render(self, field, key, value, REQUEST, render_format='html'):
@@ -1778,9 +1778,7 @@ onChange="submitAction(this.form,'%s/portal_selections/setReportRoot')">
                   else:
                     error_css = ''
                     error_message = ''
-                    #display_value = REQUEST.get('field_%s' % key, attribute_value)
                     display_value = attribute_value # XXX Make sure this is ok
-                  #LOG('ListBox', 0, 'display_value = %r' % display_value)
                   if type(display_value) == type(u''):
                     display_value = display_value.encode('utf-8')
                   if my_field.meta_type not in ('DateTimeField', 'ProxyField',):
@@ -1807,6 +1805,18 @@ onChange="submitAction(this.form,'%s/portal_selections/setReportRoot')">
   #                    column_value = column_value.encode('utf-8')
   #                  current_listboxline.addColumn(property_id , column_value)
                   if render_format == 'list':
+                    subfield = getattr(form,
+                                       "%s_%s" % (field.id, alias),
+                                       None)
+                    # If we have a listfield, then display the same
+                    # value that would be displayed in html
+                    if subfield is not None and subfield.has_value("items") :
+                      field_kw = {'cell': real_o}
+                      items = subfield.get_value('items', **field_kw)
+                      for display, value in items:
+                        if value == attribute_original_value :
+                          attribute_value_tmp = display
+                          break
                     # Make sure that attribute value is UTF-8
                     attribute_value_tmp  = attribute_original_value
                     if type(attribute_value_tmp) == type(u''):
-- 
2.30.9