diff --git a/addons/digest/models/digest.py b/addons/digest/models/digest.py index 36900546771..4ef250018e8 100644 --- a/addons/digest/models/digest.py +++ b/addons/digest/models/digest.py @@ -259,7 +259,7 @@ class Digest(models.Model): '|', ('group_id', 'in', user.groups_id.ids), ('group_id', '=', False) ], limit=tips_count) tip_descriptions = [ - self.env['mail.render.mixin'].sudo()._render_template(tools.html_sanitize(tip.tip_description), 'digest.tip', tip.ids, post_process=True, engine="qweb")[tip.id] + tools.html_sanitize(self.env['mail.render.mixin'].sudo()._render_template(tip.tip_description, 'digest.tip', tip.ids, post_process=True, engine="qweb")[tip.id]) for tip in tips ] if consumed: diff --git a/addons/digest/models/digest_tip.py b/addons/digest/models/digest_tip.py index c382700f8f5..8c0208db9ad 100644 --- a/addons/digest/models/digest_tip.py +++ b/addons/digest/models/digest_tip.py @@ -16,7 +16,7 @@ class DigestTip(models.Model): user_ids = fields.Many2many( 'res.users', string='Recipients', help='Users having already received this tip') - tip_description = fields.Html('Tip description', translate=html_translate) + tip_description = fields.Html('Tip description', translate=html_translate, sanitize=False) group_id = fields.Many2one( 'res.groups', string='Authorized Group', default=lambda self: self.env.ref('base.group_user')) diff --git a/addons/digest/tests/test_digest.py b/addons/digest/tests/test_digest.py index 196550b1bd1..2fbe72dec77 100644 --- a/addons/digest/tests/test_digest.py +++ b/addons/digest/tests/test_digest.py @@ -142,6 +142,35 @@ class TestDigest(mail_test.MailCommon): self.assertEqual(digest.periodicity, 'quarterly') + @users('admin') + def test_digest_tip_description(self): + self.env["digest.tip"].create({ + 'name': "Test digest tips", + 'tip_description': """ + + +

Record exists.

+
+ +

Record doesn't exist.

+
+ """, + }) + with self.mock_mail_gateway(): + self.test_digest._action_send_to_user(self.user_employee) + self.assertEqual(len(self._new_mails), 1, "A new Email should have been created") + sent_mail_body = html.fromstring(self._new_mails.body_html) + values_to_check = [ + sent_mail_body.xpath('//t[@t-set="record_exists"]'), + sent_mail_body.xpath('//p[@class="rendered"]/text()'), + sent_mail_body.xpath('//p[@class="not-rendered"]/text()') + ] + self.assertEqual( + values_to_check, + [[], ['Record exists.'], []], + "Sent mail should contain properly rendered tip content" + ) + @users('admin') def test_digest_tone_down_wlogs(self): digest = self.env['digest.digest'].browse(self.test_digest.ids)