From 0101e973724517b8f55b3495c801355530ca3eea Mon Sep 17 00:00:00 2001
From: Yoshinori Okuji <yo@nexedi.com>
Date: Thu, 26 Aug 2004 13:33:17 +0000
Subject: [PATCH] More unicode-related fixes.

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

diff --git a/product/ERP5Form/ListBox.py b/product/ERP5Form/ListBox.py
index 9963bd6950..fa39dc756e 100755
--- a/product/ERP5Form/ListBox.py
+++ b/product/ERP5Form/ListBox.py
@@ -1370,11 +1370,18 @@ onChange="submitAction(this.form,'%s/portal_selections/setReportRoot')">
                   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')
                 cell_body = my_field.render(value = display_value, REQUEST = o, key = key)
                                                               # We use REQUEST which is not so good here
                                                               # This prevents from using standard display process
-                list_body = list_body + \
-                    ('<td class=\"%s%s\">%s%s</td>' % (td_css, error_css, cell_body, error_message))
+                # It is safer to convert cell_body to an unicode string, because
+                # it might be utf-8.
+                if type(cell_body) == type(''):
+                  cell_body = unicode(cell_body, 'utf-8')
+                #LOG('ListBox', 0, 'cell_body = %r, error_message = %r' % (cell_body, error_message))
+                list_body += ('<td class=\"%s%s\">%s%s</td>' % (td_css, error_css, cell_body, error_message))
                 # Add item to list_result_item for list render format
                 if render_format == 'list':
                   list_result_item.append(my_field._get_default(self.generate_field_key(), display_value, o))
-- 
2.30.9