[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
pull/1057/head
Jairo Llopis 2021-10-11 08:16:57 +01:00 committed by David
parent 22bc7c48d9
commit 43875033ae
3 changed files with 6 additions and 0 deletions

View File

@ -41,6 +41,7 @@ class MailTrackingController(MailController, DiscussController):
"ua_family": request.user_agent.browser or False,
}
# TODO Remove useless controller
@http.route(
[
"/mail/tracking/all/<string:db>",

View File

@ -372,6 +372,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

View File

@ -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")