[IMP] mail_tracking_mailgun: mass mailing manual tracking

Mass mailing are tracked from mail.trace as the don't store a message in
the db. In order to gather the message_id and be able to do manual
checks to mailgun, that's the table where we should get the message id.

TT40816
pull/1216/head
David 2023-01-12 12:40:07 +01:00 committed by payen000
parent afe6220fe3
commit 8b78a72c31
1 changed files with 10 additions and 0 deletions

View File

@ -42,6 +42,7 @@ class MailTrackingEmail(models.Model):
mail_message_id = fields.Many2one( mail_message_id = fields.Many2one(
string="Message", comodel_name="mail.message", readonly=True, index=True string="Message", comodel_name="mail.message", readonly=True, index=True
) )
message_id = fields.Char(compute="_compute_message_id")
mail_id = fields.Many2one(string="Email", comodel_name="mail.mail", readonly=True) mail_id = fields.Many2one(string="Email", comodel_name="mail.mail", readonly=True)
partner_id = fields.Many2one( partner_id = fields.Many2one(
string="Partner", comodel_name="res.partner", readonly=True string="Partner", comodel_name="res.partner", readonly=True
@ -112,6 +113,15 @@ class MailTrackingEmail(models.Model):
groups="base.group_system", groups="base.group_system",
) )
@api.depends("mail_message_id")
def _compute_message_id(self):
"""This helper field will allow us to map the message_id from either the linked
mail.message or a mass.mailing mail.trace.
"""
self.message_id = False
for tracking in self.filtered("mail_message_id"):
tracking.message_id = tracking.mail_message_id.message_id
@api.model_create_multi @api.model_create_multi
def create(self, vals_list): def create(self, vals_list):
records = super().create(vals_list) records = super().create(vals_list)