Olivier Dony (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-server/6.0-opw-17600-odo into 
lp:openobject-server/6.0.

Requested reviews:
  OpenERP Publisher's Warranty Team (openerp-opw)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-opw-17600-odo/+merge/77920

(Correct target branch this time, sorry for previous one)


This patch makes the report preprocessing system properly handle separately 
inner and trailing text for each XML node. This fixes potential issues where 
the tailing text would be put inside the node if the node is empty, e.g:
   <p></p>bar would become <p>bar</p>

But it also avoids ignoring trailing text when there is an inner text, e.g.:
   <p>[[ o.name ]]</p>[[ removeParentNode('td') ]] would have the 
removeParentNode() part ignored.

To be further tested with real reports, this is untested so far.
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-opw-17600-odo/+merge/77920
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-server/6.0-opw-17600-odo.
=== modified file 'bin/report/preprocess.py'
--- bin/report/preprocess.py	2010-05-18 10:32:42 +0000
+++ bin/report/preprocess.py	2011-10-03 12:07:14 +0000
@@ -71,11 +71,17 @@
                         n = n.getparent()
                     n.set('rml_loop', txt.group(2))
                     return '[['+txt.group(1)+"''"+txt.group(4)+']]'
-                t = _regex1.sub(_sub1, node.text or node.tail)
-                if t == " ":
-                    t = _regex11.sub(_sub1, node.text  or node.tail)
-                t = _regex3.sub(_sub3, t)
-                node.text = _regex2.sub(_sub2, t)
+                def preprocess_string(text):
+                    t = _regex1.sub(_sub1, text)
+                    if t == " ":
+                        t = _regex11.sub(_sub1, text)
+                    t = _regex3.sub(_sub3, t)
+                    t = _regex2.sub(_sub2, t)
+                    return t
+                if node.text:
+                    node.text = preprocess_string(node.text)
+                if node.tail:
+                    node.tail = preprocess_string(node.tail)
             self.preprocess_rml(node,type)
         return root_node
 

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to