From 122a45281e6b81e35fa6cf9b09bbeed9883b8263 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 15 Feb 2018 19:46:21 +0100 Subject: [PATCH] [FIX] mail_tracking_mailgun: manual sync gets events from other recipients --- mail_tracking_mailgun/__openerp__.py | 2 +- mail_tracking_mailgun/models/mail_tracking_email.py | 8 +++++++- mail_tracking_mailgun/tests/test_mailgun.py | 3 ++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mail_tracking_mailgun/__openerp__.py b/mail_tracking_mailgun/__openerp__.py index 3836d894..12f3e5d3 100644 --- a/mail_tracking_mailgun/__openerp__.py +++ b/mail_tracking_mailgun/__openerp__.py @@ -7,7 +7,7 @@ { "name": "Mail tracking for Mailgun", "summary": "Mail tracking and Mailgun webhooks integration", - "version": "9.0.1.1.0", + "version": "9.0.1.2.0", "category": "Social Network", "website": "https://odoo-community.org/", "author": "Tecnativa, " diff --git a/mail_tracking_mailgun/models/mail_tracking_email.py b/mail_tracking_mailgun/models/mail_tracking_email.py index 8662e135..8706f620 100644 --- a/mail_tracking_mailgun/models/mail_tracking_email.py +++ b/mail_tracking_mailgun/models/mail_tracking_email.py @@ -10,6 +10,7 @@ import requests from datetime import datetime from openerp import _, api, fields, models from openerp.exceptions import UserError, ValidationError +from openerp.tools import email_split import logging _logger = logging.getLogger(__name__) @@ -241,8 +242,13 @@ class MailTrackingEmail(models.Model): if "items" not in content: raise ValidationError(_("Event information not longer stored")) for item in content["items"]: + # mailgun event hasn't been synced and recipient is the same as + # in the evaluated tracking. We use email_split since tracking + # recipient could come in format: "example" if not self.env['mail.tracking.event'].search( - [('mailgun_id', '=', item["id"])]): + [('mailgun_id', '=', item["id"])]) and ( + item.get("recipient", "") == + email_split(tracking.recipient)[0]): mapped_event_type = self._mailgun_event_type_mapping.get( item["event"], item["event"]) metadata = self._mailgun_metadata( diff --git a/mail_tracking_mailgun/tests/test_mailgun.py b/mail_tracking_mailgun/tests/test_mailgun.py index e58e1324..4201c9fe 100644 --- a/mail_tracking_mailgun/tests/test_mailgun.py +++ b/mail_tracking_mailgun/tests/test_mailgun.py @@ -78,7 +78,8 @@ class TestMailgun(TransactionCase): "subject": "This is a test" }, }, - "event": "delivered" + "event": "delivered", + "recipient": "to@example.com", }] }