From 18e6f7d376c30c059331c3a1243475731b40718d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 16 Dec 2022 13:30:40 +0000 Subject: [PATCH] [PERF] mail: skip state computation when posting through composer Composer holds code to check recipients email and avoid sending emails when recipients do not have valid emails. Purpose is to avoid bloating the email queue with emails that are about to fail. It is done by analyzing recipients of emails, aka checking 'recipient_ids' value before creating the mail.mail. When being in comment mode, this code has no use as recipients are computed by the notification process, not by the composer. We can therefore skip this part. It adds the 'state' and 'failure_type' values that are used on mail model, but not on messages. The same kind of processing could be done in notification process to avoid sending unnecessary notifications, but this improvement belongs to another commit and task. Task-2710804 (Mail: Clean MailThread Posting API) Part-of: odoo/odoo#99482 --- addons/mail/wizard/mail_compose_message.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index b6ae9990cc2..d70d51fe5be 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -449,7 +449,8 @@ class MailComposer(models.TransientModel): results[res_id] = mail_values - results = self._process_state(results) + if mass_mail_mode: + results = self._process_state(results) return results def _process_recipient_values(self, mail_values_dict):