[Erp5-report] r33908 nicolas - in /erp5/trunk/products: ERP5Form/tests/ Formulator/

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Mar 19 10:47:54 CET 2010


Author: nicolas
Date: Fri Mar 19 10:47:52 2010
New Revision: 33908

URL: http://svn.erp5.org?rev=33908&view=rev
Log:
Replace new lines by <br/> and escape string value for
TextAreaWidget.render_view (read-only)

Modified:
    erp5/trunk/products/ERP5Form/tests/testFields.py
    erp5/trunk/products/Formulator/Widget.py

Modified: erp5/trunk/products/ERP5Form/tests/testFields.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/tests/testFields.py?rev=33908&r1=33907&r2=33908&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testFields.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/tests/testFields.py [utf8] Fri Mar 19 10:47:52 2010
@@ -269,6 +269,18 @@
     self.field = TextAreaField('test_field')
     self.widget = self.field.widget
 
+  def test_render_view(self):
+    self.field.values['default'] = 'My first Line\n&My Second Line\tfoo'
+    self.assertEquals('<div  >My first Line<br/><br/>&amp;My Second Line\tfoo</div>',
+                      self.field.render_view(value=['My first Line\n', '&My Second Line\tfoo']))
+    editable_mode = self.portal.REQUEST.get('editable_mode', 1)
+    self.portal.REQUEST.set('editable_mode', 0)
+    try:
+      self.assertEquals('<div  >My first Line<br/>&amp;My Second Line\tfoo</div>',
+                        self.field.render(REQUEST=self.portal.REQUEST))
+    finally:
+      self.portal.REQUEST.set('editable_mode', editable_mode)
+
   def test_render_odt(self):
     self.field.values['default'] = 'My first Line\nMy Second Line\tfoo'
     self.assertEquals('text:line-break', 

Modified: erp5/trunk/products/Formulator/Widget.py
URL: http://svn.erp5.org/erp5/trunk/products/Formulator/Widget.py?rev=33908&r1=33907&r2=33908&view=diff
==============================================================================
--- erp5/trunk/products/Formulator/Widget.py [utf8] (original)
+++ erp5/trunk/products/Formulator/Widget.py [utf8] Fri Mar 19 10:47:52 2010
@@ -531,6 +531,13 @@
                             extra=field.get_value('extra'))
 
     def render_view(self, field, value, REQUEST, render_prefix=None):
+        if value is None:
+            return ''
+        if not isinstance(value, (tuple, list)):
+            value = value.split('\n')
+        line_separator = '<br/>'
+        value_list = [escape(part).replace('\n', line_separator) for part in value]
+        value = line_separator.join(value_list)
         return render_element("div",
                               css_class=field.get_value('css_class'),
                               contents=value,




More information about the Erp5-report mailing list