From 7b66c1e35f660443b73c60f149424b1c8b7480d5 Mon Sep 17 00:00:00 2001 From: openerp-sle Date: Wed, 12 Feb 2014 18:30:37 +0100 Subject: [PATCH] [IMP] Report model: Added a 'render_doc' method that renders a template into the associated partner's lang (used in invoices for instance). bzr revid: openerp-sle@openerp-sle.home-20140212173037-889koy9to39xg38c --- addons/report/models/report.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/addons/report/models/report.py b/addons/report/models/report.py index 3794cc8a564..4fd9ff1dc98 100644 --- a/addons/report/models/report.py +++ b/addons/report/models/report.py @@ -141,12 +141,37 @@ class report(osv.Model): } self._get_lang_dict() + def render_doc(doc_id, model, template): + """Helper used when a report should be translated into the associated + partner's lang. + + + + + + :param doc_id: id of the record to translate + :param model: model of the record to translate + :param template: name of the template to translate into the partner's lang + """ + ctx = context.copy() + doc = self.pool[model].browse(cr, uid, doc_id, context=ctx) + view_obj = self.pool['ir.ui.view'] + qcontext = values.copy() + # Do not force-translate if we chose to display to report in a specific lang + if ctx.get('translatable') is True: + qcontext['o'] = doc + else: + ctx['lang'] = doc.partner_id.lang + qcontext['o'] = self.pool[model].browse(cr, uid, doc_id, context=ctx) + return view_obj.render(cr, uid, template, qcontext, context=ctx) + current_user = self.pool['res.users'].browse(cr, uid, uid, context=context) values.update({ 'time': time, 'user': current_user, 'formatLang': self.formatLang, 'get_digits': self.get_digits, + 'render_doc': render_doc, }) return request.website.render(template, values)