From fd65d126806f5a3b31cdb3f21e10dfb054aa8694 Mon Sep 17 00:00:00 2001 From: "nicolas.bessi@camptocamp.com" <> Date: Fri, 22 Oct 2010 15:34:02 +0200 Subject: [PATCH 1/3] [FIX] RC2 fix of image embeeding, possibilit to have tmp file name in same milisecond, imporvement of multi header support when cusomizing report, fix of translation getter retunr scr if no translation available bzr revid: nicolas.bessi@camptocamp.com-20101022133402-bme1hmy4mtd7maa8 --- addons/report_webkit/report_helper.py | 2 +- addons/report_webkit/webkit_report.py | 34 ++++++++++++++++----------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/addons/report_webkit/report_helper.py b/addons/report_webkit/report_helper.py index 80896fa4ba2..db0c1c372fc 100644 --- a/addons/report_webkit/report_helper.py +++ b/addons/report_webkit/report_helper.py @@ -51,7 +51,7 @@ class WebKitHelper(object): height = 'width="%spx"'%(height) else : height = ' ' - toreturn = ''%( + toreturn = ''%( width, height, type, diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py index 3dd768128fb..5bdea865cde 100644 --- a/addons/report_webkit/webkit_report.py +++ b/addons/report_webkit/webkit_report.py @@ -84,8 +84,10 @@ class WebKitParser(report_sxw): _('path to Wkhtmltopdf is not absolute'), 'for path %s'%(path) ) - def generate_pdf(self, comm_path, report_xml, header, footer, html_list): + def generate_pdf(self, comm_path, report_xml, header, footer, html_list, webkit_header=False): """Call webkit in order to generate pdf""" + if not webkit_header: + webkit_header = report_xml.webkit_header tmp_dir = tempfile.gettempdir() out = report_xml.name+str(time.time())+'.pdf' out = os.path.join(tmp_dir, out.replace(' ','')) @@ -120,20 +122,22 @@ class WebKitParser(report_sxw): file_to_del.append(foot_file.name) command.append("--footer-html '%s'"%(foot_file.name)) - if report_xml.webkit_header.margin_top : - command.append('--margin-top %s'%(report_xml.webkit_header.margin_top)) - if report_xml.webkit_header.margin_bottom : - command.append('--margin-bottom %s'%(report_xml.webkit_header.margin_bottom)) - if report_xml.webkit_header.margin_left : - command.append('--margin-left %s'%(report_xml.webkit_header.margin_left)) - if report_xml.webkit_header.margin_right : - command.append('--margin-right %s'%(report_xml.webkit_header.margin_right)) - if report_xml.webkit_header.orientation : - command.append("--orientation '%s'"%(report_xml.webkit_header.orientation)) - if report_xml.webkit_header.format : - command.append(" --page-size '%s'"%(report_xml.webkit_header.format)) + if webkit_header.margin_top : + command.append('--margin-top %s'%(webkit_header.margin_top)) + if webkit_header.margin_bottom : + command.append('--margin-bottom %s'%(webkit_header.margin_bottom)) + if webkit_header.margin_left : + command.append('--margin-left %s'%(webkit_header.margin_left)) + if webkit_header.margin_right : + command.append('--margin-right %s'%(webkit_header.margin_right)) + if webkit_header.orientation : + command.append("--orientation '%s'"%(webkit_header.orientation)) + if webkit_header.format : + command.append(" --page-size '%s'"%(webkit_header.format)) + count = 0 for html in html_list : - html_file = file(os.path.join(tmp_dir, str(time.time()) + '.body.html'), 'w') + html_file = file(os.path.join(tmp_dir, str(time.time()) + str(count) +'.body.html'), 'w') + count += 1 html_file.write(html) html_file.close() file_to_del.append(html_file.name) @@ -168,6 +172,8 @@ class WebKitParser(report_sxw): """Translate String.""" ir_translation = self.pool.get('ir.translation') res = ir_translation._get_source(self.parser_instance.cr, self.parser_instance.uid, self.name, 'report', self.localcontext.get('lang', 'en_US'), src) + if not res : + return src return res def formatLang(self, value, digits=None, date=False, date_time=False, grouping=True, monetary=False): From cdaef22f14104878cf21aba391c444cfe83e1abb Mon Sep 17 00:00:00 2001 From: "nicolas.bessi@camptocamp.com" <> Date: Mon, 15 Nov 2010 11:17:59 +0100 Subject: [PATCH 2/3] [IMP] better debug-error message$ bzr revid: nicolas.bessi@camptocamp.com-20101115101759-vt2b1j03c9upbubn --- addons/report_webkit/webkit_report.py | 82 +++++++++++++++------------ 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py index cce410a9dc6..e05c8e5c437 100644 --- a/addons/report_webkit/webkit_report.py +++ b/addons/report_webkit/webkit_report.py @@ -35,7 +35,7 @@ import report import tempfile import time from mako.template import Template - +from mako import exceptions import netsvc import pooler from report_helper import WebKitHelper @@ -278,45 +278,57 @@ class WebKitParser(report_sxw): #default_filters=['unicode', 'entity'] can be used to set global filter body_mako_tpl = Template(template ,input_encoding='utf-8') helper = WebKitHelper(cursor, uid, report_xml.id, context) - html = body_mako_tpl.render( helper=helper, - css=css, - _=self.translate_call, - **self.parser_instance.localcontext - ) + try : + html = body_mako_tpl.render( helper=helper, + css=css, + _=self.translate_call, + **self.parser_instance.localcontext + ) + except : + raise Exception(exceptions.html_error_template().render()) head_mako_tpl = Template(header, input_encoding='utf-8') - head = head_mako_tpl.render( - company=company, - time=time, - helper=helper, - css=css, - formatLang=self.formatLang, - setLang=self.setLang, - _=self.translate_call, - _debug=False - ) + try : + head = head_mako_tpl.render( + company=company, + time=time, + helper=helper, + css=css, + formatLang=self.formatLang, + setLang=self.setLang, + _=self.translate_call, + _debug=False + ) + except : + raise Exception(exceptions.html_error_template().render()) foot = False if footer : foot_mako_tpl = Template(footer ,input_encoding='utf-8') - foot = foot_mako_tpl.render( - company=company, - time=time, - helper=helper, - css=css, - formatLang=self.formatLang, - setLang=self.setLang, - _=self.translate_call, - ) + try : + foot = foot_mako_tpl.render( + company=company, + time=time, + helper=helper, + css=css, + formatLang=self.formatLang, + setLang=self.setLang, + _=self.translate_call, + ) + except: + raise Exception(exceptions.html_error_template().render()) if report_xml.webkit_debug : - deb = head_mako_tpl.render( - company=company, - time=time, - helper=helper, - css=css, - _debug=html, - formatLang=self.formatLang, - setLang=self.setLang, - _=self.translate_call, - ) + try : + deb = head_mako_tpl.render( + company=company, + time=time, + helper=helper, + css=css, + _debug=html, + formatLang=self.formatLang, + setLang=self.setLang, + _=self.translate_call, + ) + except : + raise Exception(exceptions.html_error_template().render()) return (deb, 'html') bin = self.get_lib(cursor, uid, company.id) pdf = self.generate_pdf(bin, report_xml, head, foot, [html]) From 0716a455a609d62b1b5b1d2e5358c9c943a5646b Mon Sep 17 00:00:00 2001 From: "nicolas.bessi@camptocamp.com" <> Date: Thu, 25 Nov 2010 16:50:35 +0100 Subject: [PATCH 3/3] Fixes as disscused with odony bzr revid: nicolas.bessi@camptocamp.com-20101125155035-to0aj6i7ulygbwap --- addons/report_webkit/webkit_report.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py index e05c8e5c437..191c614a68f 100644 --- a/addons/report_webkit/webkit_report.py +++ b/addons/report_webkit/webkit_report.py @@ -284,8 +284,8 @@ class WebKitParser(report_sxw): _=self.translate_call, **self.parser_instance.localcontext ) - except : - raise Exception(exceptions.html_error_template().render()) + except Exception, e: + raise except_osv(exceptions.html_error_template().render()) head_mako_tpl = Template(header, input_encoding='utf-8') try : head = head_mako_tpl.render( @@ -298,8 +298,8 @@ class WebKitParser(report_sxw): _=self.translate_call, _debug=False ) - except : - raise Exception(exceptions.html_error_template().render()) + except Exception, e: + raise except_osv(exceptions.html_error_template().render()) foot = False if footer : foot_mako_tpl = Template(footer ,input_encoding='utf-8') @@ -314,7 +314,7 @@ class WebKitParser(report_sxw): _=self.translate_call, ) except: - raise Exception(exceptions.html_error_template().render()) + raise except_osv(exceptions.html_error_template().render()) if report_xml.webkit_debug : try : deb = head_mako_tpl.render( @@ -327,8 +327,8 @@ class WebKitParser(report_sxw): setLang=self.setLang, _=self.translate_call, ) - except : - raise Exception(exceptions.html_error_template().render()) + except Exception, e: + raise except_osv(exceptions.html_error_template().render()) return (deb, 'html') bin = self.get_lib(cursor, uid, company.id) pdf = self.generate_pdf(bin, report_xml, head, foot, [html])