[FIX] email_template: missing translations in email template

When composing an email based on an email template, some parts of the template
(the result of name_get on fields) were not translated.
This was due to missing language in context when rendering the template.
Fixes #3708, opw 617309
This commit is contained in:
Ravi Gohil 2014-11-17 17:06:37 +05:30 committed by Martin Trigaux
parent 9f9e7ef0e1
commit b035cfb7e9
1 changed files with 5 additions and 5 deletions

View File

@ -311,11 +311,14 @@ class email_template(osv.osv):
context = {}
report_xml_pool = self.pool.get('ir.actions.report.xml')
template = self.get_email_template(cr, uid, template_id, res_id, context)
ctx = context.copy()
if template.lang:
ctx['lang'] = template._context.get('lang')
values = {}
for field in ['subject', 'body_html', 'email_from',
'email_to', 'email_recipients', 'email_cc', 'reply_to']:
values[field] = self.render_template(cr, uid, getattr(template, field),
template.model, res_id, context=context) \
template.model, res_id, context=ctx) \
or False
if template.user_signature:
signature = self.pool.get('res.users').browse(cr, uid, uid, context).signature
@ -333,12 +336,9 @@ class email_template(osv.osv):
attachments = []
# Add report in attachments
if template.report_template:
report_name = self.render_template(cr, uid, template.report_name, template.model, res_id, context=context)
report_name = self.render_template(cr, uid, template.report_name, template.model, res_id, context=ctx)
report_service = 'report.' + report_xml_pool.browse(cr, uid, template.report_template.id, context).report_name
# Ensure report is rendered using template's language
ctx = context.copy()
if template.lang:
ctx['lang'] = self.render_template(cr, uid, template.lang, template.model, res_id, context)
service = netsvc.LocalService(report_service)
(result, format) = service.create(cr, uid, [res_id], {'model': template.model}, ctx)
# TODO in trunk, change return format to binary to match message_post expected format