[Erp5-report] r30316 - in /erp5/trunk/products/ERP5OOo: ./ tests/ tests/test_document/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Nov 5 09:40:34 CET 2009


Author: tatuya
Date: Thu Nov  5 09:40:32 2009
New Revision: 30316

URL: http://svn.erp5.org?rev=30316&view=rev
Log:
Fix a bug when setting a span style directly, not creating a style. 

Modified:
    erp5/trunk/products/ERP5OOo/FormPrintout.py
    erp5/trunk/products/ERP5OOo/tests/testFormPrintout.py
    erp5/trunk/products/ERP5OOo/tests/test_document/Foo_001.odt

Modified: erp5/trunk/products/ERP5OOo/FormPrintout.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/FormPrintout.py?rev=30316&r1=30315&r2=30316&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] Thu Nov  5 09:40:32 2009
@@ -400,6 +400,10 @@
 
     range reference example:
     <text:reference-mark-start text:name="week"/>Monday<text:reference-mark-end text:name="week"/>
+    or
+    <text:reference-mark-start text:name="my_title"/><text:span text:style-name="T1">title</text:span>
+    <text:reference-mark-end text:name="my_title"/>
+
     """
     field_value = self._renderField(field)
     value = self._toUnicodeString(field_value)
@@ -409,7 +413,12 @@
       return element_tree
     target_node = reference_list[0]
     if not isinstance(field_value, list):
-      target_node.tail = value
+      next_node = target_node.getnext()
+      span_tag_name = '{%s}span' % element_tree.nsmap['text']
+      if next_node is not None and next_node.tag == span_tag_name:
+        next_node.text = value
+      else:
+        target_node.tail = value
       # clear text until 'reference-mark-end'
       for node in target_node.itersiblings():
         end_tag_name = '{%s}reference-mark-end' % element_tree.nsmap['text']

Modified: erp5/trunk/products/ERP5OOo/tests/testFormPrintout.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/testFormPrintout.py?rev=30316&r1=30315&r2=30316&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/tests/testFormPrintout.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/tests/testFormPrintout.py [utf8] Thu Nov  5 09:40:32 2009
@@ -293,7 +293,29 @@
     self.assertEqual(number_paragraph.text, "543210.0")
     
     self._validate(odf_document)
-    
+
+  def test_01_Paragraph_09_RangeReferenceWithSpan(self, run=run_all_test):
+    """test range reference and span setting"""
+    if not run: return
+
+    foo_printout = self.portal.foo_module.test1.Foo_viewAsPrintout
+    foo_form = self.portal.foo_module.test1.Foo_view
+    if foo_form._getOb("my_test_title", None) is None:
+      foo_form.manage_addField('my_test_title', 'test title', 'StringField')
+    test_title = foo_form.my_test_title
+    test_title.values['default'] = 'ZZZ test here ZZZ'
+    
+    odf_document = foo_printout() 
+    self.assertTrue(odf_document is not None)
+    test_output = open("/tmp/test_01_Paragraph_09_RangeReferenceWithSpan.odf", "w")
+    test_output.write(odf_document)
+    builder = OOoBuilder(odf_document)
+    content_xml = builder.extract("content.xml")
+    self.assertTrue(content_xml.find("ZZZ test here ZZZ") > 0)
+    self.assertTrue(content_xml.find("test title") < 0)
+    self._validate(odf_document)
+
+   
   def test_02_Table_01_Normal(self, run=run_all_test):
     """To test listbox and ODF table mapping
     

Modified: erp5/trunk/products/ERP5OOo/tests/test_document/Foo_001.odt
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/tests/test_document/Foo_001.odt?rev=30316&r1=30315&r2=30316&view=diff
==============================================================================
Binary files - no diff available.




More information about the Erp5-report mailing list