[Erp5-report] r31153 nicolas - /erp5/trunk/products/ERP5OOo/FormPrintout.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Dec 8 14:01:00 CET 2009
Author: nicolas
Date: Tue Dec 8 14:01:00 2009
New Revision: 31153
URL: http://svn.erp5.org?rev=31153&view=rev
Log:
if reference-mark range does not have content, it does not means it is not present
Modified:
erp5/trunk/products/ERP5OOo/FormPrintout.py
Modified: erp5/trunk/products/ERP5OOo/FormPrintout.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/FormPrintout.py?rev=31153&r1=31152&r2=31153&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] (original)
+++ erp5/trunk/products/ERP5OOo/FormPrintout.py [utf8] Tue Dec 8 14:01:00 2009
@@ -925,20 +925,22 @@
"""
field_id = field.id
- range_reference_xpath = '//text:reference-mark-start[@text:name="%s"]/'\
+ range_reference_xpath = '//text:reference-mark-start[@text:name="%s"]' % (field_id,)
+ node_to_remove_list_xpath = '//text:reference-mark-start[@text:name="%s"]/'\
'following-sibling::*[node()/'\
'following::text:reference-mark-end[@text:name="%s"]]' % (field_id, field_id)
+ node_to_remove_list = element_tree.xpath(node_to_remove_list_xpath, namespaces=element_tree.nsmap)
reference_list = element_tree.xpath(range_reference_xpath, namespaces=element_tree.nsmap)
if not reference_list:
return element_tree
- parent_node_xpath = '//text:reference-mark-start[@text:name="%s"]/parent::*[1]' % field_id
- parent_node = element_tree.xpath(parent_node_xpath, namespaces=element_tree.nsmap)[0]
+ referenced_node = reference_list[0]
+ parent_node = referenced_node.getparent()
text_reference_position = int(parent_node.xpath('count(text:reference-mark-start/preceding-sibling::*)', namespaces=element_tree.nsmap))
#Delete all contents between <text:reference-mark-start/> and <text:reference-mark-end/>
#Try to fetch style-name
attr_dict = {}
- [(attr_dict.update(target_node.attrib), parent_node.remove(target_node)) for target_node in reference_list]
+ [(attr_dict.update(target_node.attrib), parent_node.remove(target_node)) for target_node in node_to_remove_list]
new_node = field.render_odt(local_name='span', attr_dict=attr_dict)
parent_node.insert(text_reference_position+1, new_node)
# set when using report section
More information about the Erp5-report
mailing list