diff --git a/mail_gateway_whatsapp/models/mail_gateway_whatsapp.py b/mail_gateway_whatsapp/models/mail_gateway_whatsapp.py index 4d600d83d1..c8e154f3ea 100644 --- a/mail_gateway_whatsapp/models/mail_gateway_whatsapp.py +++ b/mail_gateway_whatsapp/models/mail_gateway_whatsapp.py @@ -167,6 +167,19 @@ def _process_update(self, chat, message, value): chat = chat.with_user(self.env.ref("base.public_user").id).with_context( guest=author ) + related_message_id = message.get("context", {}).get("id", False) + related_message = False + if related_message_id: + related_message = ( + self.env["mail.notification"] + .search( + [ + ("gateway_channel_id", "=", chat.id), + ("gateway_message_id", "=", related_message_id), + ] + ) + .mail_message_id + ) # TODO: Check the sudo... new_message = chat.sudo().message_post( body=body, @@ -177,39 +190,28 @@ def _process_update(self, chat, message, value): subtype_xmlid="mail.mt_comment", message_type="comment", attachments=attachments, + parent_id=related_message and related_message.id, ) self._post_process_message(new_message, chat) - related_message_id = message.get("context", {}).get("id", False) - if related_message_id: - related_message = ( - self.env["mail.notification"] - .search( - [ - ("gateway_channel_id", "=", chat.id), - ("gateway_message_id", "=", related_message_id), - ] + if related_message and related_message.gateway_message_id: + new_related_message = ( + self.env[related_message.gateway_message_id.model] + .browse(related_message.gateway_message_id.res_id) + .message_post( + body=body, + author_id=author + and author._name == "res.partner" + and author.id, + gateway_type="whatsapp", + date=datetime.fromtimestamp(int(message["timestamp"])), + # message_id=update.message.message_id, + subtype_xmlid="mail.mt_comment", + message_type="comment", + attachments=attachments, ) - .mail_message_id ) - if related_message and related_message.gateway_message_id: - new_related_message = ( - self.env[related_message.gateway_message_id.model] - .browse(related_message.gateway_message_id.res_id) - .message_post( - body=body, - author_id=author - and author._name == "res.partner" - and author.id, - gateway_type="whatsapp", - date=datetime.fromtimestamp(int(message["timestamp"])), - # message_id=update.message.message_id, - subtype_xmlid="mail.mt_comment", - message_type="comment", - attachments=attachments, - ) - ) - self._post_process_reply(related_message) - new_message.gateway_message_id = new_related_message + self._post_process_reply(related_message) + new_message.gateway_message_id = new_related_message def _send( self,