From 2e2158594c109600f63fc5316fc58df1530b9fdf Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Mon, 11 Oct 2021 08:16:57 +0100 Subject: [PATCH] [FIX] mail_tracking: process sent events Up until now, the `sent` event type was never processed, probably because it "made no sense", as an unsent email would never trigger an event. However, it makes sense to process it because you may have a local relay that transmits mails over to the mail provider. In those circumstances, you should have 2 "sent" events (one from the relay and another one from the provider). Also marked some useless parts of code for removal. @Tecnativa TT32365 --- mail_tracking/controllers/main.py | 1 + mail_tracking/models/mail_tracking_email.py | 1 + mail_tracking/models/mail_tracking_event.py | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/mail_tracking/controllers/main.py b/mail_tracking/controllers/main.py index 8eb1f6529..bb5be4e64 100644 --- a/mail_tracking/controllers/main.py +++ b/mail_tracking/controllers/main.py @@ -40,6 +40,7 @@ class MailTrackingController(MailController): "ua_family": request.user_agent.browser or False, } + # TODO Remove useless controller @http.route( [ "/mail/tracking/all/", diff --git a/mail_tracking/models/mail_tracking_email.py b/mail_tracking/models/mail_tracking_email.py index 72590c3eb..a52e5e9bb 100644 --- a/mail_tracking/models/mail_tracking_email.py +++ b/mail_tracking/models/mail_tracking_email.py @@ -382,6 +382,7 @@ class MailTrackingEmail(models.Model): _logger.debug("Concurrent event '%s' discarded", event_type) return event_ids + # TODO Remove useless method @api.model def event_process(self, request, post, metadata, event_type=None): # Generic event process hook, inherit it and diff --git a/mail_tracking/models/mail_tracking_event.py b/mail_tracking/models/mail_tracking_event.py index c92fc6f3b..c00af256a 100644 --- a/mail_tracking/models/mail_tracking_event.py +++ b/mail_tracking/models/mail_tracking_event.py @@ -119,6 +119,10 @@ class MailTrackingEvent(models.Model): ) return self._process_data(tracking_email, metadata, event_type, state) + @api.model + def process_sent(self, tracking_email, metadata): + return self._process_status(tracking_email, metadata, "sent", "sent") + @api.model def process_delivered(self, tracking_email, metadata): return self._process_status(tracking_email, metadata, "delivered", "delivered")