Browse Source

[FIX] mail_tracking_mailgun: manual sync gets events from other recipients

pull/137/merge
David 6 years ago
committed by Holger Brunn
parent
commit
122a45281e
  1. 2
      mail_tracking_mailgun/__openerp__.py
  2. 8
      mail_tracking_mailgun/models/mail_tracking_email.py
  3. 3
      mail_tracking_mailgun/tests/test_mailgun.py

2
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, "

8
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" <to@dest.com>
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(

3
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",
}]
}

Loading…
Cancel
Save