From cbb911f5305bb7a449fef6e03b2ac70ee625e644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 13 Nov 2020 10:07:08 +0000 Subject: [PATCH] [FIX] mass_mailing: keep invalid email on failed traces SPECIFICATIONS Traces are sent to normalized emails. If email is invalid email set on traces is void as we cannot normalize it. In this commit we set it to the original value of email, allowing to debug or at least understand what was wrong. It also makes behavior coherent with SMS Marketing. LINKS Task ID-2508643 Prepares Task ID-27033 (support QWeb in templates) Prepares Task ID-2377974 (clean trace and status management in mass mailing) COM PR odoo/odoo#69461 ENT PR odoo/enterprise#17780 X-original-commit: af841ccece14ffee0291f761d5363eceded65dfc --- addons/mass_mailing/wizard/mail_compose_message.py | 3 ++- addons/test_mail_full/tests/test_mass_mailing.py | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/addons/mass_mailing/wizard/mail_compose_message.py b/addons/mass_mailing/wizard/mail_compose_message.py index 916ca002872..19a345a9e47 100644 --- a/addons/mass_mailing/wizard/mail_compose_message.py +++ b/addons/mass_mailing/wizard/mail_compose_message.py @@ -75,7 +75,8 @@ class MailComposeMessage(models.TransientModel): 'model': self.model, 'res_id': res_id, 'mass_mailing_id': mass_mailing.id, - 'email': mail_to, + # if mail_to is void, keep falsy values to allow searching / debugging traces + 'email': mail_to or mail_values.get('email_to'), } if mail_values.get('body_html') and mass_mail_layout: mail_values['body_html'] = mass_mail_layout._render({'body': mail_values['body_html']}, engine='ir.qweb', minimal_qcontext=True) diff --git a/addons/test_mail_full/tests/test_mass_mailing.py b/addons/test_mail_full/tests/test_mass_mailing.py index 9693631ec8a..135c0e0f751 100644 --- a/addons/test_mail_full/tests/test_mass_mailing.py +++ b/addons/test_mail_full/tests/test_mass_mailing.py @@ -63,11 +63,8 @@ class TestMassMailing(TestMailFullCommon): recipient_info['state'] = 'ignored' # falsy: ignored (cancel mail) elif recipient == recipient_falsy_1: - # TDE FIXME: currently setting False as email - # recipient_info['state'] = 'ignored' - # recipient_info['email'] = recipient.email_from # normalized is False but email should be falsymail recipient_info['state'] = 'ignored' - recipient_info['email'] = False + recipient_info['email'] = recipient.email_from # normalized is False but email should be falsymail else: email = self._find_sent_mail_wemail(recipient.email_normalized) # preview correctly integrated rendered jinja