From 105cfcff9455e4288fa2bbc7ef659a6062475099 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sabrina=20Mart=C3=ADn?= Date: Mon, 12 Jan 2026 11:54:52 +0000 Subject: [PATCH] [FIX] mail_post_defer: Fixed behavior of message sending wizard --- mail_post_defer/__init__.py | 1 + mail_post_defer/models/mail_thread.py | 25 ++++++++++++++++- mail_post_defer/wizard/__init__.py | 1 + .../wizard/mail_compose_message.py | 28 +++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 mail_post_defer/wizard/__init__.py create mode 100644 mail_post_defer/wizard/mail_compose_message.py diff --git a/mail_post_defer/__init__.py b/mail_post_defer/__init__.py index cc6b6354a..700d6ab98 100644 --- a/mail_post_defer/__init__.py +++ b/mail_post_defer/__init__.py @@ -1,2 +1,3 @@ from . import models +from . import wizard from .hooks import post_init_hook diff --git a/mail_post_defer/models/mail_thread.py b/mail_post_defer/models/mail_thread.py index 8287eaa53..8d9c95ecd 100644 --- a/mail_post_defer/models/mail_thread.py +++ b/mail_post_defer/models/mail_thread.py @@ -64,4 +64,27 @@ def _message_update_content(self, *args, **kwargs): kwargs.setdefault( "scheduled_date", fields.Datetime.now() + timedelta(seconds=30) ) - return super()._message_update_content(*args, **kwargs) + + res = super()._message_update_content(*args, **kwargs) + message = args[0] if len(args) > 0 else None + body = args[1] if len(args) > 1 else None + + if message and body is not None: + mails = ( + self.env["mail.mail"] + .sudo() + .search( + [ + ("mail_message_id", "=", message.id), + ("state", "=", "outgoing"), + ] + ) + ) + if mails: + mails.write( + { + "body_html": message.body, + } + ) + + return res diff --git a/mail_post_defer/wizard/__init__.py b/mail_post_defer/wizard/__init__.py new file mode 100644 index 000000000..b528d997d --- /dev/null +++ b/mail_post_defer/wizard/__init__.py @@ -0,0 +1 @@ +from . import mail_compose_message diff --git a/mail_post_defer/wizard/mail_compose_message.py b/mail_post_defer/wizard/mail_compose_message.py new file mode 100644 index 000000000..914202584 --- /dev/null +++ b/mail_post_defer/wizard/mail_compose_message.py @@ -0,0 +1,28 @@ +# Copyright 2025 Moduon Team S.L. +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). + +from datetime import timedelta + +from odoo import fields, models + + +class MailComposer(models.TransientModel): + _inherit = "mail.compose.message" + + def _action_send_mail_comment(self, res_ids): + self.ensure_one() + self = self.with_context( + mail_notify_force_send=False, + ) + return super()._action_send_mail_comment(res_ids) + + def action_send_mail(self): + res = super().action_send_mail() + for mail in self.env["mail.mail"].browse( + self.env.context.get("mail_mail_ids", []) + ): + if mail.state == "outgoing": + mail.sudo().write( + {"scheduled_date": fields.Datetime.now() + timedelta(seconds=30)} + ) + return res