social/mail_gateway/wizards/mail_message_gateway_link.py

43 lines
1.5 KiB
Python

# Copyright 2024 Dixmit
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models
class MailMessageGatewayLink(models.TransientModel):
_name = "mail.message.gateway.link"
_description = "Link message from gateway"
message_id = fields.Many2one("mail.message")
resource_ref = fields.Reference(
string="Record reference", selection="_selection_target_model"
)
@api.model
def _selection_target_model(self):
models = self.env["ir.model"].search([("is_mail_thread", "=", True)])
return [(model.model, model.name) for model in models]
def link_message(self):
new_message = self.resource_ref.message_post(
body=self.message_id.body,
author_id=self.message_id.author_id.id,
gateway_type=self.message_id.gateway_type,
date=self.message_id.date,
# message_id=update.message.message_id,
subtype_xmlid="mail.mt_comment",
message_type="comment",
attachment_ids=self.message_id.attachment_ids.ids,
gateway_notifications=[], # Avoid sending notifications
)
self.message_id.gateway_message_id = new_message
self.env["bus.bus"]._sendone(
self.env.user.partner_id,
"mail.message/insert",
{
"id": self.message_id.id,
"gateway_thread_data": self.message_id.sudo().gateway_thread_data,
},
)