From d0866738d0c3c2bcb192bedf8973fb61b043fbd8 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 22 Dec 2017 19:23:40 +0100 Subject: [PATCH] [10.0][FIX] mail_tracking_mailgun: Avoid key dict errors --- mail_tracking_mailgun/models/mail_tracking_email.py | 6 ++++-- mail_tracking_mailgun/models/res_partner.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mail_tracking_mailgun/models/mail_tracking_email.py b/mail_tracking_mailgun/models/mail_tracking_email.py index e2d557de..8662e135 100644 --- a/mail_tracking_mailgun/models/mail_tracking_email.py +++ b/mail_tracking_mailgun/models/mail_tracking_email.py @@ -9,7 +9,7 @@ import json import requests from datetime import datetime from openerp import _, api, fields, models -from openerp.exceptions import ValidationError +from openerp.exceptions import UserError, ValidationError import logging _logger = logging.getLogger(__name__) @@ -221,6 +221,8 @@ class MailTrackingEmail(models.Model): """ api_key, api_url, domain, validation_key = self._mailgun_values() for tracking in self: + if not tracking.mail_message_id: + raise UserError(_('There is no tracked message!')) message_id = tracking.mail_message_id.message_id.replace( "<", "").replace(">", "") res = requests.get( @@ -242,7 +244,7 @@ class MailTrackingEmail(models.Model): if not self.env['mail.tracking.event'].search( [('mailgun_id', '=', item["id"])]): mapped_event_type = self._mailgun_event_type_mapping.get( - item["event"]) or False + item["event"], item["event"]) metadata = self._mailgun_metadata( mapped_event_type, item, {}) tracking.event_create(mapped_event_type, metadata) diff --git a/mail_tracking_mailgun/models/res_partner.py b/mail_tracking_mailgun/models/res_partner.py index 9657647c..1c8779cb 100644 --- a/mail_tracking_mailgun/models/res_partner.py +++ b/mail_tracking_mailgun/models/res_partner.py @@ -30,7 +30,7 @@ class ResPartner(models.Model): body = _('Email has been bounced: %s\n' 'Reason: %s\n' 'Event: %s') % (partner.email, reason, - event['Message-Id'] or '') + event.get('Message-Id', _('unknown'))) partner.message_post(body=body) @api.multi