From ebd50f5c2a12f19446264d090ab47e6739fd7585 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Thu, 12 Sep 2024 16:42:15 +0200 Subject: [PATCH] fixup! [IMP] mail_gateway: Allow usage of mail templates on gateway --- mail_gateway/models/res_partner.py | 17 ++++++++++ mail_gateway/security/ir.model.access.csv | 1 - .../static/src/models/composer_view.esm.js | 20 ++++++++---- .../wizards/mail_compose_gateway_message.py | 32 +++++++++---------- .../wizards/mail_compose_gateway_message.xml | 22 ++++--------- 5 files changed, 53 insertions(+), 39 deletions(-) diff --git a/mail_gateway/models/res_partner.py b/mail_gateway/models/res_partner.py index a43e9e69c4..5a2e3db5ef 100644 --- a/mail_gateway/models/res_partner.py +++ b/mail_gateway/models/res_partner.py @@ -66,6 +66,23 @@ class ResPartnerGatewayChannel(models.Model): "res.company", related="gateway_id.company_id", store=True ) + def name_get(self): + result = [] + origin = super().name_get() + if not self.env.context.get("mail_gateway_partner_info", False): + return origin + origin_dict = dict(origin) + for record in self: + result.append( + ( + record.id, + "{} ({})".format( + record.partner_id.display_name, origin_dict[record.id] + ), + ) + ) + return result + _sql_constraints = [ ( "unique_partner_gateway", diff --git a/mail_gateway/security/ir.model.access.csv b/mail_gateway/security/ir.model.access.csv index 4e8643e59f..afa35f6aa1 100644 --- a/mail_gateway/security/ir.model.access.csv +++ b/mail_gateway/security/ir.model.access.csv @@ -8,4 +8,3 @@ access_mail_guest_manage,mail.telegram.bot.all,model_mail_guest_manage,base.grou access_mail_message_gateway_link,mail.message.link.all,model_mail_message_gateway_link,base.group_user,1,1,1,1 access_mail_gateway_system,mail_gateway,model_mail_gateway,base.group_system,1,1,1,1 access_mail_compose_gateway_message,access.mail.compose.gateway.message,model_mail_compose_gateway_message,base.group_user,1,1,1,0 -access_mail_compose_gateway_message_partner,access.mail.compose.gateway.message.partner,model_mail_compose_gateway_message_partner,base.group_user,1,1,1,0 diff --git a/mail_gateway/static/src/models/composer_view.esm.js b/mail_gateway/static/src/models/composer_view.esm.js index 00c38c43fe..dfb481ab02 100644 --- a/mail_gateway/static/src/models/composer_view.esm.js +++ b/mail_gateway/static/src/models/composer_view.esm.js @@ -23,7 +23,6 @@ registerPatch({ const attachmentIds = this.composer.attachments.map( (attachment) => attachment.id ); - console.log(this); const context = { default_attachment_ids: attachmentIds, default_body: escapeAndCompactTextContent( @@ -35,12 +34,21 @@ registerPatch({ ), default_res_id: this.composer.activeThread.id, mail_post_autofollow: this.composer.activeThread.hasWriteAccess, - default_wizard_partner_ids: - this.composer.composerGatewayFollowers.map((follower) => { - return follower._getMessageData(); - }), + default_wizard_partner_ids: Array.from( + new Set( + this.composer.composerGatewayFollowers.map((follower) => { + return follower.follower.partner.id; + }) + ) + ), + default_wizard_channel_ids: Array.from( + new Set( + this.composer.composerGatewayFollowers.map((follower) => { + return follower.channel; + }) + ) + ), }; - console.log(context); const action = { type: "ir.actions.act_window", name: this.env._t("Gateway message"), diff --git a/mail_gateway/wizards/mail_compose_gateway_message.py b/mail_gateway/wizards/mail_compose_gateway_message.py index 8e49c92e86..483a7598c2 100644 --- a/mail_gateway/wizards/mail_compose_gateway_message.py +++ b/mail_gateway/wizards/mail_compose_gateway_message.py @@ -9,8 +9,17 @@ class MailComposeGatewayMessage(models.TransientModel): _inherit = "mail.compose.message" _description = "Mail Compose Gateway Message" - wizard_partner_ids = fields.One2many( - "mail.compose.gateway.message.partner", "wizard_id", "Recipents" + wizard_partner_ids = fields.Many2many( + "res.partner", + "mail_compose_gateway_message_res_partner_rel", + "wizard_id", + "partner_id", + ) + wizard_channel_ids = fields.Many2many( + "res.partner.gateway.channel", + "mail_compose_gateway_message_gateway_channel_rel", + "wizard_id", + "channel_id", ) attachment_ids = fields.Many2many( "ir.attachment", @@ -34,21 +43,10 @@ def get_mail_values(self, res_ids): res = super(MailComposeGatewayMessage, self).get_mail_values(res_ids) res[res_ids[0]]["gateway_notifications"] = [ { - "partner_id": partner.partner_id.id, - "channel_type": partner.channel_type, - "gateway_channel_id": partner.gateway_channel_id.id, + "partner_id": channel.partner_id.id, + "channel_type": "gateway", + "gateway_channel_id": channel.id, } - for partner in self.wizard_partner_ids + for channel in self.wizard_channel_ids ] return res - - -class MailComposeGatewayMessagePartner(models.TransientModel): - _name = "mail.compose.gateway.message.partner" - - wizard_id = fields.Many2one( - "mail.compose.gateway.message", "Wizard", required=True, ondelete="cascade" - ) - partner_id = fields.Many2one("res.partner", "Contact", required=True, readonly=True) - gateway_channel_id = fields.Many2one("res.partner.gateway.channel", "Channel") - channel_type = fields.Char() diff --git a/mail_gateway/wizards/mail_compose_gateway_message.xml b/mail_gateway/wizards/mail_compose_gateway_message.xml index c22adb86ab..895f512ce2 100644 --- a/mail_gateway/wizards/mail_compose_gateway_message.xml +++ b/mail_gateway/wizards/mail_compose_gateway_message.xml @@ -12,21 +12,13 @@ 1 - - - - - - - + + 1