From 2b2ccab0b633fe568c1a4c963b552ca9c7aedf96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 5 Sep 2022 13:20:37 +0000 Subject: [PATCH] [FIX] mail: fix broken multi _message_compose_with_view Returning after first loop iteration has the sad side effect of somehow breaking batch version of methods. Oversight of odoo/odoo@0ea27f430c27716e9f995523f050ba70fa4befde closes odoo/odoo#99630 X-original-commit: 6d6dbe16d4570372fe5fd3d28ebe5c43b646d3bc Signed-off-by: Thibault Delavallee (tde) --- addons/mail/models/mail_activity.py | 2 +- addons/mail/models/mail_thread.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index 8be9c6abf71..2ce53932299 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -571,7 +571,7 @@ class MailActivity(models.Model): next_activities_values.append(vals) # post message on activity, before deleting it - _, activity_message = record.message_post_with_view( + activity_message = record.message_post_with_view( 'mail.message_activity_done', values={ 'activity': activity, diff --git a/addons/mail/models/mail_thread.py b/addons/mail/models/mail_thread.py index 5e21146141d..db17b2a1b85 100644 --- a/addons/mail/models/mail_thread.py +++ b/addons/mail/models/mail_thread.py @@ -2032,16 +2032,23 @@ class MailThread(models.AbstractModel): except ImportError: values['slug'] = lambda self: self.id view_ref = views_or_xmlid.id if isinstance(views_or_xmlid, models.BaseModel) else views_or_xmlid + + messages_as_sudo = self.env['mail.message'] for record in self: values['object'] = record rendered_template = self.env['ir.qweb']._render(view_ref, values, minimal_qcontext=True, raise_if_not_found=False) if not rendered_template: continue if message_log: - return record._message_log(body=rendered_template, **kwargs) + messages_as_sudo += record._message_log(body=rendered_template, **kwargs) else: kwargs['body'] = rendered_template - return record.message_post_with_template(False, **kwargs) + # a bit complicated to handle, to be improved soon in master + _mails_as_sudo, _messages_as_sudo = record.message_post_with_template(False, **kwargs) + if _messages_as_sudo: + messages_as_sudo += _messages_as_sudo + + return messages_as_sudo def message_post_with_view(self, views_or_xmlid, **kwargs): """ Helper method to send a mail / post a message using a view_id """