diff --git a/addons/report_webkit/data.xml b/addons/report_webkit/data.xml index 508cf426860..62a76697ea5 100644 --- a/addons/report_webkit/data.xml +++ b/addons/report_webkit/data.xml @@ -53,7 +53,7 @@ - + @@ -75,7 +75,7 @@ -
${helper.embed_logo_by_name('camptocamp_logo')}${helper.embed_logo_by_name('camptocamp_logo')|n}
Mail: ${company.partner_id.address and company.partner_id.address[0].email or ''|entity}
${_debug or ''} + ${_debug or ''|n} ]]> diff --git a/addons/report_webkit/header_view.xml b/addons/report_webkit/header_view.xml index baca42d663f..f3b17f79675 100644 --- a/addons/report_webkit/header_view.xml +++ b/addons/report_webkit/header_view.xml @@ -49,7 +49,7 @@ form tree,form - + Header HTML @@ -57,7 +57,7 @@ form tree,form - + diff --git a/addons/report_webkit/report_helper.py b/addons/report_webkit/report_helper.py index db0c1c372fc..2b9d8c93256 100644 --- a/addons/report_webkit/report_helper.py +++ b/addons/report_webkit/report_helper.py @@ -48,7 +48,7 @@ class WebKitHelper(object): else : width = ' ' if height : - height = 'width="%spx"'%(height) + height = 'height="%spx"'%(height) else : height = ' ' toreturn = ''%( diff --git a/addons/report_webkit/webkit_report.py b/addons/report_webkit/webkit_report.py index 307e0b56990..f48795c34d3 100644 --- a/addons/report_webkit/webkit_report.py +++ b/addons/report_webkit/webkit_report.py @@ -5,6 +5,7 @@ # All Right Reserved # # Author : Nicolas Bessi (Camptocamp) +# Contributor(s) : Florent Xicluna (Wingo SA) # # WARNING: This program as such is intended to be used by professional # programmers who take the whole responsability of assessing all potential @@ -44,6 +45,16 @@ import addons from tools.translate import _ from osv.osv import except_osv + +def mako_template(text): + """Build a Mako template. + + This template uses UTF-8 encoding + """ + # default_filters=['unicode', 'h'] can be used to set global filters + return Template(text, input_encoding='utf-8', output_encoding='utf-8') + + class WebKitParser(report_sxw): """Custom class that use webkit to render HTML reports Code partially taken from report openoffice. Thanks guys :) @@ -67,7 +78,8 @@ class WebKitParser(report_sxw): _('Please install executable on your system'+ ' (sudo apt-get install wkhtmltopdf) or download it from here:'+ ' http://code.google.com/p/wkhtmltopdf/downloads/list and set the'+ - ' path to the executable on the Company form.') + ' path to the executable on the Company form.'+ + 'Minimal version is 0.9.9') ) if os.path.isabs(path) : if (os.path.exists(path) and os.access(path, os.X_OK)\ @@ -98,7 +110,9 @@ class WebKitParser(report_sxw): else: command = ['wkhtmltopdf'] - command.append('-q') + command.append('--quiet') + # default to UTF-8 encoding. Use to override. + command.extend(['--encoding', 'utf-8']) if header : head_file = file( os.path.join( tmp_dir, @@ -276,7 +290,7 @@ class WebKitParser(report_sxw): company= user.company_id #default_filters=['unicode', 'entity'] can be used to set global filter - body_mako_tpl = Template(template ,input_encoding='utf-8') + body_mako_tpl = mako_template(template) helper = WebKitHelper(cursor, uid, report_xml.id, context) try : html = body_mako_tpl.render( helper=helper, @@ -288,7 +302,7 @@ class WebKitParser(report_sxw): msg = exceptions.text_error_template().render() netsvc.Logger().notifyChannel('Webkit render', netsvc.LOG_ERROR, msg) raise except_osv(_('Webkit render'), msg) - head_mako_tpl = Template(header, input_encoding='utf-8') + head_mako_tpl = mako_template(header) try : head = head_mako_tpl.render( company=company, @@ -305,7 +319,7 @@ class WebKitParser(report_sxw): exceptions.text_error_template().render()) foot = False if footer : - foot_mako_tpl = Template(footer ,input_encoding='utf-8') + foot_mako_tpl = mako_template(footer) try : foot = foot_mako_tpl.render( company=company, @@ -327,7 +341,7 @@ class WebKitParser(report_sxw): time=time, helper=helper, css=css, - _debug=html, + _debug=html.decode(), formatLang=self.formatLang, setLang=self.setLang, _=self.translate_call,