From a52ccd2c3f342106d2d0c720c685a56975689cef Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Sat, 13 Dec 2008 01:16:18 +0200 Subject: [PATCH] Use the txt report in the OpenObject server Activate that report type, so that the server can use it. bzr revid: p_christ@hol.gr-20081212231618-fkk5wd7bja0dih45 --- bin/addons/base/ir/ir_actions.py | 1 + bin/report/interface.py | 11 ++++++++--- bin/report/render/__init__.py | 2 +- bin/report/render/rml.py | 10 ++++++++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index 41ebe76ba51..a0550e6ff93 100644 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -119,6 +119,7 @@ class report_xml(osv.osv): ('html', 'html'), ('raw', 'raw'), ('sxw', 'sxw'), + ('txt', 'txt'), ], string='Type', required=True), 'groups_id': fields.many2many('res.groups', 'res_groups_report_rel', 'uid', 'gid', 'Groups'), 'attachment': fields.char('Save As Attachment Prefix', size=32, help='This is the prefix of the file name the print will be saved as attachement. Keep empty to not save the printed reports') diff --git a/bin/report/interface.py b/bin/report/interface.py index eb82025cd19..3623efbd4e2 100644 --- a/bin/report/interface.py +++ b/bin/report/interface.py @@ -81,15 +81,16 @@ class report_rml(report_int): 'html': self.create_html, 'raw': self.create_raw, 'sxw': self.create_sxw, + 'txt': self.create_txt, } def create(self, cr, uid, ids, datas, context): xml = self.create_xml(cr, uid, ids, datas, context) -# file('/tmp/terp.xml','wb+').write(xml) + #file('/tmp/terp.xml','wb+').write(xml) if datas.get('report_type', 'pdf') == 'raw': return xml rml = self.create_rml(cr, xml, uid, context) -# file('/tmp/terp.rml','wb+').write(rml) + #file('/tmp/terp.rml','wb+').write(rml) pool = pooler.get_pool(cr.dbname) ir_actions_report_xml_obj = pool.get('ir.actions.report.xml') try: @@ -208,6 +209,11 @@ class report_rml(report_int): obj.render() return obj.get() + def create_txt(self, xml, logo=None, title=None): + obj = render.rml2txt(xml, self.bin_datas) + obj.render() + return obj.get().encode('utf-8') + def create_raw(self, xml, logo=None, title=None): return xml @@ -235,4 +241,3 @@ def register_all(db): # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/bin/report/render/__init__.py b/bin/report/render/__init__.py index 210b41fbbb5..d38064cc585 100644 --- a/bin/report/render/__init__.py +++ b/bin/report/render/__init__.py @@ -21,7 +21,7 @@ ############################################################################## from simple import simple -from rml import rml, rml2html +from rml import rml, rml2html, rml2txt from render import render diff --git a/bin/report/render/rml.py b/bin/report/render/rml.py index 587b0f243c9..5036954d605 100644 --- a/bin/report/render/rml.py +++ b/bin/report/render/rml.py @@ -23,6 +23,7 @@ import render import rml2pdf import rml2html as htmlizer +import rml2txt as txtizer class rml(render.render): def __init__(self, xml, datas={}, path='.',title=None): @@ -44,5 +45,14 @@ class rml2html(render.render): def _render(self): return htmlizer.parseString(self.xml) +class rml2txt(render.render): + def __init__(self, xml, datas={}): + super(rml2txt, self).__init__(datas) + self.xml = xml + self.output_type = 'txt' + + def _render(self): + return txtizer.parseString(self.xml) + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: