summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorChristophe Simonis <christophe@tinyerp.com>2008-09-24 17:34:10 +0200
committerChristophe Simonis <christophe@tinyerp.com>2008-09-24 17:34:10 +0200
commitbb8d92c55ab6c4d28009069952f9ea2a6232ba8a (patch)
tree3a4071b5546221d78bbaa6f718ffbd553f16373a /bin
parent520e5d36301eb5e21cb885e8f08348894e5002ed (diff)
remove use of global variable
bzr revid: christophe@tinyerp.com-20080924153410-hdkfx2ddzg8zjje1
Diffstat (limited to 'bin')
-rw-r--r--bin/report/interface.py13
-rw-r--r--bin/report/printscreen/ps_form.py10
-rw-r--r--bin/report/printscreen/ps_list.py10
-rw-r--r--bin/report/render/rml2pdf/trml2pdf.py40
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)