[FIX] mail: allow to preview a template in a specific lang

Followup of odoo/odoo@2d6df1fe7a : when forcing language in template preview
result is not returned according to the expected format.

Add tests.

Task-2643750

closes odoo/odoo#76458

X-original-commit: 80c6001f6f46cc548fb4e337ba71908bea768d86
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Co-authored-by: Thibault Delavallee <tde@odoo.com>
This commit is contained in:
Nicolas Bayet
2021-09-14 07:10:57 +00:00
committed by Thibault Delavallée
co-authored by Thibault Delavallee
parent bc7dbfea63
commit 60fce9f656
3 changed files with 32 additions and 5 deletions
+5 -5
View File
@@ -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))
+1
View File
@@ -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
@@ -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, '<p>Spanish Body for %s</p>' % test_record.name)
preview.write({'lang': 'en_US'})
self.assertEqual(preview.body_html, '<p>English Body for %s</p>' % test_record.name)