From db120a927e5098cfd4a023972cfc3a83bffd792d Mon Sep 17 00:00:00 2001 From: Naresh Choksy Date: Mon, 4 May 2009 11:44:01 +0530 Subject: [PATCH] bugfix bzr revid: nch@tinyerp.com-20090504061401-p7q0ihqpgogu666m --- bin/report/report_sxw.py | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/bin/report/report_sxw.py b/bin/report/report_sxw.py index 04eea2da1e5..118133a5be1 100644 --- a/bin/report/report_sxw.py +++ b/bin/report/report_sxw.py @@ -290,6 +290,17 @@ class rml_parse(object): found.getparent().replace(found,tag) return True + def set_context(self, objects, data, ids, report_type = None): + self.localcontext['data'] = data + self.localcontext['objects'] = objects + self.datas = data + self.ids = ids + self.objects = objects + if report_type: + if report_type=='odt' : + self.localcontext.update({'name_space' :common.odt_namespace}) + else: + self.localcontext.update({'name_space' :common.sxw_namespace}) class report_sxw(report_rml, preprocess.report): def __init__(self, name, table, rml=False, parser=rml_parse, header=True, store=False): @@ -299,19 +310,6 @@ class report_sxw(report_rml, preprocess.report): self.header = header self.store = store - def set_context(self, objects, data, ids, rml_parser, report_xml = None): - rml_parser.localcontext['data'] = data - rml_parser.localcontext['objects'] = objects - rml_parser.datas = data - rml_parser.ids = ids - rml_parser.objects = objects - if report_xml: - if report_xml.report_type=='odt' : - rml_parser.localcontext.update({'name_space' :common.odt_namespace}) - else: - rml_parser.localcontext.update({'name_space' :common.sxw_namespace}) - - def getObjects(self, cr, uid, ids, context): table_obj = pooler.get_pool(cr.dbname).get(self.table) return table_obj.browse(cr, uid, ids, list_class=browse_record_list, context=context, fields_process=_fields_process) @@ -402,7 +400,7 @@ class report_sxw(report_rml, preprocess.report): rml = report_xml.report_rml_content rml_parser = self.parser(cr, uid, self.name2, context) objs = self.getObjects(cr, uid, ids, context) - self.set_context(objs, data, ids, rml_parser,report_xml) + rml_parser.set_context(objs, data, ids, report_xml.report_type) processed_rml = self.preprocess_rml(etree.XML(rml),report_xml.report_type) if report_xml.header: rml_parser._add_header(processed_rml) @@ -426,7 +424,7 @@ class report_sxw(report_rml, preprocess.report): rml_parser.parents = sxw_parents rml_parser.tag = sxw_tag objs = self.getObjects(cr, uid, ids, context) - self.set_context(objs, data, ids,rml_parser,report_xml) + rml_parser.set_context(objs, data, ids,report_xml.report_type) rml_dom_meta = node = etree.XML(meta) elements = node.findall(rml_parser.localcontext['name_space']["meta"]+"user-defined") @@ -456,7 +454,7 @@ class report_sxw(report_rml, preprocess.report): rml_parser.parents = sxw_parents rml_parser.tag = sxw_tag objs = self.getObjects(cr, uid, ids, context) - self.set_context(objs, data, ids, rml_parser,report_xml) + rml_parser.set_context(objs, data, ids, report_xml.report_type) rml_dom = self.preprocess_rml(etree.XML(rml),report_type) create_doc = self.generators[report_type] odt = create_doc(rml_dom,rml_parser.localcontext)