[Erp5-report] r33913 nicolas - in /erp5/trunk/products: ERP5Form/tests/ Formulator/
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Mar 19 11:55:11 CET 2010
Author: nicolas
Date: Fri Mar 19 11:55:09 2010
New Revision: 33913
URL: http://svn.erp5.org?rev=33913&view=rev
Log:
LinesFieldWidget can not use TextAreaFieldWidget anymore as
it escapes values now.
Add test to avoid regressions
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=33913&r1=33912&r2=33913&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/tests/testFields.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/tests/testFields.py [utf8] Fri Mar 19 11:55:09 2010
@@ -40,7 +40,7 @@
from Products.Formulator.FieldRegistry import FieldRegistry
from Products.Formulator.Validator import ValidationError
from Products.Formulator.StandardFields import FloatField, StringField,\
-DateTimeField, TextAreaField, CheckBoxField, ListField
+DateTimeField, TextAreaField, CheckBoxField, ListField, LinesField
from Products.Formulator.MethodField import Method, BoundMethod
from Products.Formulator.TALESField import TALESMethod
@@ -296,6 +296,19 @@
test_value = self.field.render_odg(as_string=False)\
.xpath('%s/text:tab' % ODG_XML_WRAPPING_XPATH, namespaces=NSMAP)
self.assertTrue(test_value)
+
+class TestLinesField(ERP5TypeTestCase):
+
+ def getTitle(self):
+ return "Lines Field"
+
+ def afterSetUp(self):
+ self.field = LinesField('test_field')
+ self.widget = self.field.widget
+
+ def test_render_view(self):
+ self.assertEquals(self.field.render_view(value=['My first Line\n', '&My Second Line\tfoo']),
+ '<div >My first Line<br />\n<br />\n&My Second Line\tfoo</div>')
class TestCheckBoxField(ERP5TypeTestCase):
"""Tests TextArea field
@@ -790,6 +803,7 @@
suite.addTest(unittest.makeSuite(TestStringField))
suite.addTest(unittest.makeSuite(TestDateTimeField))
suite.addTest(unittest.makeSuite(TestTextAreaField))
+ suite.addTest(unittest.makeSuite(TestLinesField))
suite.addTest(unittest.makeSuite(TestCheckBoxField))
suite.addTest(unittest.makeSuite(TestListField))
suite.addTest(unittest.makeSuite(TestProxyField))
Modified: erp5/trunk/products/Formulator/Widget.py
URL: http://svn.erp5.org/erp5/trunk/products/Formulator/Widget.py?rev=33913&r1=33912&r2=33913&view=diff
==============================================================================
--- erp5/trunk/products/Formulator/Widget.py [utf8] (original)
+++ erp5/trunk/products/Formulator/Widget.py [utf8] Fri Mar 19 11:55:09 2010
@@ -599,14 +599,17 @@
def render_view(self, field, value, REQUEST=None, render_prefix=None):
if value is None:
return ''
- elif isinstance(value, (str, unicode)):
- value = [value]
- return TextAreaWidget.render_view(
- self,
- field,
- string.join(value, field.get_value('view_separator')),
- REQUEST,
- )
+ if isinstance(value, (str, unicode)):
+ value = value.split('\n')
+ line_separator = field.get_value('view_separator')
+
+ 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,
+ extra=field.get_value('extra'))
+
def render_odt_view(self, field, value, as_string, ooo_builder, REQUEST,
render_prefix, attr_dict, local_name):
More information about the Erp5-report
mailing list