[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:
committed by
Thibault Delavallée
co-authored by
Thibault Delavallee
parent
bc7dbfea63
commit
60fce9f656
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user