[MERGE] Fix for bug 885299: properly manage XML chars escaping in reports in all cases
bzr revid: odo@openerp.com-20111104164222-315uq7my7oa42v8d
This commit is contained in:
commit
ce558209ab
|
@ -610,11 +610,10 @@ class _rml_flowable(object):
|
|||
for key in txt_n.attrib.keys():
|
||||
if key in ('rml_except', 'rml_loop', 'rml_tag'):
|
||||
del txt_n.attrib[key]
|
||||
if True or not self._textual(n).isspace():
|
||||
if not n.tag == 'bullet':
|
||||
txt_n.text = utils.xml2str(self._textual(n))
|
||||
txt_n.tail = n.tail and utils._process_text(self, n.tail.replace('\n','')) or ''
|
||||
rc1 += etree.tostring(txt_n)
|
||||
if not n.tag == 'bullet':
|
||||
txt_n.text = utils.xml2str(self._textual(n))
|
||||
txt_n.tail = n.tail and utils.xml2str(utils._process_text(self, n.tail.replace('\n',''))) or ''
|
||||
rc1 += etree.tostring(txt_n)
|
||||
return rc1
|
||||
|
||||
def _table(self, node):
|
||||
|
|
|
@ -110,6 +110,14 @@ def _child_get(node, self=None, tagname=None):
|
|||
yield n
|
||||
|
||||
def _process_text(self, txt):
|
||||
"""Translate ``txt`` according to the language in the local context,
|
||||
replace dynamic ``[[expr]]`` with their real value, then escape
|
||||
the result for XML.
|
||||
|
||||
:param str txt: original text to translate (must NOT be XML-escaped)
|
||||
:return: translated text, with dynamic expressions evaluated and
|
||||
with special XML characters escaped (``&,<,>``).
|
||||
"""
|
||||
if not self.localcontext:
|
||||
return str2xml(txt)
|
||||
if not txt:
|
||||
|
@ -130,10 +138,10 @@ def _process_text(self, txt):
|
|||
except Exception:
|
||||
pass
|
||||
if isinstance(txt, basestring):
|
||||
result += str2xml(txt)
|
||||
result += txt
|
||||
elif txt and (txt is not None) and (txt is not False):
|
||||
result += ustr(txt)
|
||||
return result
|
||||
return str2xml(result)
|
||||
|
||||
def text_get(node):
|
||||
return ''.join([ustr(n.text) for n in node])
|
||||
|
|
Loading…
Reference in New Issue