From bb8d92c55ab6c4d28009069952f9ea2a6232ba8a Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Wed, 24 Sep 2008 17:34:10 +0200 Subject: [PATCH] remove use of global variable bzr revid: christophe@tinyerp.com-20080924153410-hdkfx2ddzg8zjje1 --- bin/report/interface.py | 13 +++++---- bin/report/printscreen/ps_form.py | 10 +++---- bin/report/printscreen/ps_list.py | 10 +++---- bin/report/render/rml2pdf/trml2pdf.py | 40 ++++++++++++++------------- 4 files changed, 36 insertions(+), 37 deletions(-) diff --git a/bin/report/interface.py b/bin/report/interface.py index fafc52367b6..95e6ec31946 100644 --- a/bin/report/interface.py +++ b/bin/report/interface.py @@ -64,6 +64,7 @@ class report_int(netsvc.Service): self.name = name self.id = 0 self.name2 = '.'.join(name.split('.')[1:]) + self.title = None self.joinGroup('report') self.exportMethod(self.create) @@ -101,10 +102,10 @@ class report_rml(report_int): ir_actions_report_xml_obj = pool.get('ir.actions.report.xml') report_xml_ids = ir_actions_report_xml_obj.search(cr, uid, [('report_name', '=', self.name[7:])], context=context) - ftitle = ir_actions_report_xml_obj.browse(cr,uid,report_xml_ids)[0].name + self.title = ir_actions_report_xml_obj.browse(cr,uid,report_xml_ids)[0].name report_type = datas.get('report_type', 'pdf') create_doc = self.generators[report_type] - pdf = create_doc(rml,title=ftitle) + pdf = create_doc(rml, title=self.title) return (pdf, report_type) def create_xml(self, cr, uid, ids, datas, context=None): @@ -196,7 +197,7 @@ class report_rml(report_int): result.freeDoc() return xml - def create_pdf(self, xml, logo=None,title=None): + def create_pdf(self, xml, logo=None, title=None): if logo: self.bin_datas['logo'] = logo else: @@ -206,15 +207,15 @@ class report_rml(report_int): obj.render() return obj.get() - def create_html(self, xml, logo=None,title=None): + def create_html(self, xml, logo=None, title=None): obj = render.rml2html(xml, self.bin_datas) obj.render() return obj.get() - def create_raw(self, xml, logo=None,title=None): + def create_raw(self, xml, logo=None, title=None): return xml - def create_sxw(self, path, logo=None,title=None): + def create_sxw(self, path, logo=None, title=None): return path from report_sxw import report_sxw diff --git a/bin/report/printscreen/ps_form.py b/bin/report/printscreen/ps_form.py index 6e8b2de602f..1e7757e3f17 100644 --- a/bin/report/printscreen/ps_form.py +++ b/bin/report/printscreen/ps_form.py @@ -39,7 +39,7 @@ import libxml2 import libxslt import time, os -ftitle="" + class report_printscreen_list(report_int): def __init__(self, name): report_int.__init__(self, name) @@ -63,7 +63,6 @@ class report_printscreen_list(report_int): return self._parse_node(dom) def create(self, cr, uid, ids, datas, context=None): - global ftitle if not context: context={} datas['ids'] = ids @@ -71,10 +70,10 @@ class report_printscreen_list(report_int): model_id = pool.get('ir.model').search(cr, uid, [('model','=',model._name)]) if model_id: model_desc = pool.get('ir.model').browse(cr, uid, model_id, context).name - ftitle=model_desc + self.title = model_desc else: model_desc = model._description - ftitle=model_desc + self.title = model_desc model = pool.get(datas['model']) result = model.fields_view_get(cr, uid, view_type='tree', context=context) @@ -158,8 +157,7 @@ class report_printscreen_list(report_int): doc = libxml2.parseDoc(new_doc.toxml()) rml_obj = style.applyStylesheet(doc, None) rml = style.saveResultToString(rml_obj) - global ftitle - self.obj = render.rml(rml,ftitle) + self.obj = render.rml(rml, self.title) self.obj.render() return True report_printscreen_list('report.printscreen.form') diff --git a/bin/report/printscreen/ps_list.py b/bin/report/printscreen/ps_list.py index 4717fe03437..29242a3119e 100644 --- a/bin/report/printscreen/ps_list.py +++ b/bin/report/printscreen/ps_list.py @@ -39,7 +39,7 @@ import libxml2 import libxslt import time, os -ftitle="" + class report_printscreen_list(report_int): def __init__(self, name): report_int.__init__(self, name) @@ -63,7 +63,6 @@ class report_printscreen_list(report_int): return self._parse_node(dom) def create(self, cr, uid, ids, datas, context=None): - global ftitle if not context: context={} pool = pooler.get_pool(cr.dbname) @@ -71,10 +70,10 @@ class report_printscreen_list(report_int): model_id = pool.get('ir.model').search(cr, uid, [('model','=',model._name)]) if model_id: model_desc = pool.get('ir.model').browse(cr, uid, model_id[0], context).name - ftitle=model_desc + self.title = model_desc else: model_desc = model._description - ftitle=model_desc + self.title = model_desc datas['ids'] = ids model = pooler.get_pool(cr.dbname).get(datas['model']) @@ -202,8 +201,7 @@ class report_printscreen_list(report_int): doc = libxml2.parseDoc(new_doc.toxml()) rml_obj = style.applyStylesheet(doc, None) rml = style.saveResultToString(rml_obj) - global ftitle - self.obj = render.rml(rml,title=ftitle) + self.obj = render.rml(rml, title=self.title) self.obj.render() return True report_printscreen_list('report.printscreen.list') diff --git a/bin/report/render/rml2pdf/trml2pdf.py b/bin/report/render/rml2pdf/trml2pdf.py index aeee1220d08..e0cc3cc8220 100644 --- a/bin/report/render/rml2pdf/trml2pdf.py +++ b/bin/report/render/rml2pdf/trml2pdf.py @@ -60,7 +60,7 @@ from reportlab import platypus import utils import color import os -ftitle="" + # # Change this to UTF-8 if you plan tu use Reportlab's UTF-8 support # @@ -180,11 +180,12 @@ class _rml_styles(object): return style class _rml_doc(object): - def __init__(self, data, images={}, path='.'): + def __init__(self, data, images={}, path='.', title=None): self.dom = xml.dom.minidom.parseString(data) self.filename = self.dom.documentElement.getAttribute('filename') self.images = images self.path = path + self.title = title def docinit(self, els): from reportlab.lib.fonts import addMapping @@ -229,28 +230,28 @@ class _rml_doc(object): el = self.dom.documentElement.getElementsByTagName('template') if len(el): - pt_obj = _rml_template(out, el[0], self, images=self.images, path=self.path) + pt_obj = _rml_template(out, el[0], self, images=self.images, path=self.path, title=self.title) pt_obj.render(self.dom.documentElement.getElementsByTagName('story')) else: self.canvas = canvas.Canvas(out) pd = self.dom.documentElement.getElementsByTagName('pageDrawing')[0] - pd_obj = _rml_canvas(self.canvas, None, self, self.images, path=self.path) + pd_obj = _rml_canvas(self.canvas, None, self, self.images, path=self.path, title=self.title) pd_obj.render(pd) self.canvas.showPage() self.canvas.save() class _rml_canvas(object): - def __init__(self, canvas, doc_tmpl=None, doc=None, images={}, path='.'): + def __init__(self, canvas, doc_tmpl=None, doc=None, images={}, path='.', title=None): self.canvas = canvas self.styles = doc.styles self.doc_tmpl = doc_tmpl self.doc = doc self.images = images self.path = path - global ftitle - if ftitle: - self.canvas.setTitle(ftitle) + self.title = title + if self.title: + self.canvas.setTitle(self.title) def _textual(self, node, x=0, y=0): rc = '' @@ -324,7 +325,7 @@ class _rml_canvas(object): self.canvas.circle(x_cen=utils.unit_get(node.getAttribute('x')), y_cen=utils.unit_get(node.getAttribute('y')), r=utils.unit_get(node.getAttribute('radius')), **utils.attr_get(node, [], {'fill':'bool','stroke':'bool'})) def _place(self, node): - flows = _rml_flowable(self.doc, images=self.images, path=self.path).render(node) + flows = _rml_flowable(self.doc, images=self.images, path=self.path, title=self.title).render(node) infos = utils.attr_get(node, ['x','y','width','height']) infos['y']+=infos['height'] @@ -450,25 +451,27 @@ class _rml_canvas(object): break class _rml_draw(object): - def __init__(self, node, styles, images={}, path='.'): + def __init__(self, node, styles, images={}, path='.', title=None): self.node = node self.styles = styles self.canvas = None self.images = images self.path = path + self.canvas_title = title def render(self, canvas, doc): canvas.saveState() - cnv = _rml_canvas(canvas, doc, self.styles, images=self.images, path=self.path) + cnv = _rml_canvas(canvas, doc, self.styles, images=self.images, path=self.path, title=self.canvas_title) cnv.render(self.node) canvas.restoreState() class _rml_flowable(object): - def __init__(self, doc, images={}, path='.'): + def __init__(self, doc, images={}, path='.', title=None): self.doc = doc self.styles = doc.styles self.images = images self.path = path + self.title = title def _textual(self, node): rc = '' @@ -569,7 +572,7 @@ class _rml_flowable(object): return (self.width, self.height) def draw(self): canvas = self.canv - drw = _rml_draw(self.node, self.styles, images=self.self2.images, path=self.self2.path) + drw = _rml_draw(self.node, self.styles, images=self.self2.images, path=self.self2.path, title=self.self2.title) drw.render(self.canv, None) return Illustration(node, self.styles, self) @@ -741,9 +744,10 @@ class TinyDocTemplate(platypus.BaseDocTemplate): self.canv._pageNumber = 0 class _rml_template(object): - def __init__(self, out, node, doc, images={}, path='.'): + def __init__(self, out, node, doc, images={}, path='.', title=None): self.images= images self.path = path + self.title = title if not node.hasAttribute('pageSize'): pageSize = (utils.unit_get('21cm'), utils.unit_get('29.7cm')) else: @@ -764,7 +768,7 @@ class _rml_template(object): frames.append( frame ) gr = pt.getElementsByTagName('pageGraphics') if len(gr): - drw = _rml_draw(gr[0], self.doc, images=images, path=self.path) + drw = _rml_draw(gr[0], self.doc, images=images, path=self.path, title=self.title) self.page_templates.append( platypus.PageTemplate(frames=frames, onPage=drw.render, **utils.attr_get(pt, [], {'id':'str'}) )) else: self.page_templates.append( platypus.PageTemplate(frames=frames, **utils.attr_get(pt, [], {'id':'str'}) )) @@ -772,7 +776,7 @@ class _rml_template(object): def render(self, node_stories): fis = [] - r = _rml_flowable(self.doc,images=self.images, path=self.path) + r = _rml_flowable(self.doc,images=self.images, path=self.path, title=self.title) for node_story in node_stories: fis += r.render(node_story) if node_story==node_stories[-1]: @@ -784,9 +788,7 @@ class _rml_template(object): self.doc_tmpl.build(fis) def parseString(data, fout=None, images={}, path='.',title=None): - r = _rml_doc(data, images, path) - global ftitle - ftitle=title + r = _rml_doc(data, images, path, title=title) if fout: fp = file(fout,'wb') r.render(fp)