diff --git a/addons/mail/models/mail_render_mixin.py b/addons/mail/models/mail_render_mixin.py index 9cbc788e7a6..76e6220f8f3 100644 --- a/addons/mail/models/mail_render_mixin.py +++ b/addons/mail/models/mail_render_mixin.py @@ -498,11 +498,11 @@ class MailRenderMixin(models.AbstractModel): self.ensure_one() if self.env.context.get('template_preview_lang'): - return dict((res_id, self.env.context['template_preview_lang']) for res_id in res_ids) - - lang_to_res_ids = {} - for res_id, lang in self._render_lang(res_ids, engine=engine).items(): - lang_to_res_ids.setdefault(lang, []).append(res_id) + lang_to_res_ids = {self.env.context['template_preview_lang']: res_ids} + else: + lang_to_res_ids = {} + for res_id, lang in self._render_lang(res_ids, engine=engine).items(): + lang_to_res_ids.setdefault(lang, []).append(res_id) return dict( (lang, (self.with_context(lang=lang) if lang else self, lang_res_ids)) diff --git a/addons/test_mail/tests/__init__.py b/addons/test_mail/tests/__init__.py index b6e302cb99d..0400ce9280f 100644 --- a/addons/test_mail/tests/__init__.py +++ b/addons/test_mail/tests/__init__.py @@ -11,6 +11,7 @@ from . import test_mail_mail from . import test_mail_gateway from . import test_mail_thread_internals from . import test_mail_template +from . import test_mail_template_preview from . import test_message_management from . import test_message_post from . import test_message_track diff --git a/addons/test_mail/tests/test_mail_template_preview.py b/addons/test_mail/tests/test_mail_template_preview.py new file mode 100644 index 00000000000..de8a2eadfa1 --- /dev/null +++ b/addons/test_mail/tests/test_mail_template_preview.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.addons.test_mail.tests.test_mail_template import TestMailTemplate +from odoo.tests import tagged + + +@tagged('mail_template') +class TestMailTemplateTools(TestMailTemplate): + + def test_mail_template_preview_force_lang(self): + test_record = self.env['mail.test.lang'].browse(self.test_record.ids) + test_record.write({ + 'lang': 'es_ES', + }) + test_template = self.env['mail.template'].browse(self.test_template.ids) + + preview = self.env['mail.template.preview'].create({ + 'mail_template_id': test_template.id, + 'resource_ref': test_record, + 'lang': 'es_ES', + }) + self.assertEqual(preview.body_html, '
Spanish Body for %s
' % test_record.name) + + preview.write({'lang': 'en_US'}) + self.assertEqual(preview.body_html, 'English Body for %s
' % test_record.name)