diff --git a/mail_tracking/models/mail_message.py b/mail_tracking/models/mail_message.py index ab711d5e3..686f2f9a9 100644 --- a/mail_tracking/models/mail_message.py +++ b/mail_tracking/models/mail_message.py @@ -20,6 +20,7 @@ class MailMessage(models.Model): mail_tracking_ids = fields.One2many( comodel_name="mail.tracking.email", inverse_name="mail_message_id", + auto_join=True, string="Mail Trackings", ) mail_tracking_needs_action = fields.Boolean( diff --git a/mail_tracking/models/mail_tracking_email.py b/mail_tracking/models/mail_tracking_email.py index 78040ec4b..b95f09bfb 100644 --- a/mail_tracking/models/mail_tracking_email.py +++ b/mail_tracking/models/mail_tracking_email.py @@ -158,10 +158,16 @@ class MailTrackingEmail(models.Model): if not msg_linked: return [] ids, msg_ids, mail_ids, partner_ids = zip(*msg_linked) - # Filter messages with their ACL rules - msg_ids = self.env["mail.message"]._search([("id", "in", msg_ids)]) - mail_ids = self.env["mail.mail"]._search([("id", "in", mail_ids)]) - partner_ids = self.env["res.partner"]._search([("id", "in", partner_ids)]) + # Filter messages with their ACL rules avoiding False values fetched in the set + msg_ids = self.env["mail.message"]._search( + [("id", "in", [x for x in msg_ids if x])] + ) + mail_ids = self.env["mail.mail"]._search( + [("id", "in", [x for x in mail_ids if x])] + ) + partner_ids = self.env["res.partner"]._search( + [("id", "in", [x for x in partner_ids if x])] + ) return [ x[0] for x in msg_linked