[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/>&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/>&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