From f16dbbcaecb7d46aefd3451eab2082316e8b0eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 17 Aug 2021 08:35:18 +0000 Subject: [PATCH] [IMP] mass_mailing: improve mailing trace report PURPOSE Improve user experience of report model build on mailing traces. SPECIFICATIONS Add scheduled count to reporting. Indeed we have number of sent and delivered traces but it lacks count of scheduled. Some traces are not sent for example when email or sms is missing or obviously wrong. Those are currently not counted in reporting, this is fixed. Views are also improved to add relevant metrics and measures. Notably add a list view on report model, allowing to see some metrics at a glance. Improve SMS related views, hiding opened / replied metrics as we do not track them currently in SMS. LINKS Task ID-2377974 Community PR odoo/odoo#61467 Enterprise PR odoo/enterprise#14633 --- .../report/mailing_trace_report.py | 6 ++- .../report/mailing_trace_report_views.xml | 54 +++++++++++++++---- .../report/mailing_trace_report_views.xml | 29 +++++++++- 3 files changed, 75 insertions(+), 14 deletions(-) diff --git a/addons/mass_mailing/report/mailing_trace_report.py b/addons/mass_mailing/report/mailing_trace_report.py index e3711151077..da9b7cf4999 100644 --- a/addons/mass_mailing/report/mailing_trace_report.py +++ b/addons/mass_mailing/report/mailing_trace_report.py @@ -19,6 +19,7 @@ class MailingTraceReport(models.Model): string='Status', readonly=True) email_from = fields.Char('From', readonly=True) # traces + scheduled = fields.Integer(readonly=True) sent = fields.Integer(readonly=True) delivered = fields.Integer(readonly=True) error = fields.Integer(readonly=True) @@ -57,11 +58,12 @@ class MailingTraceReport(models.Model): 'trace.create_date as scheduled_date', 'mailing.state', 'mailing.email_from', + "COUNT(trace.id) as scheduled", 'COUNT(trace.sent_datetime) as sent', - "(COUNT(trace.sent_datetime) - COUNT(trace.trace_status) FILTER (WHERE trace.trace_status IN ('error', 'bounce', 'cancel'))) as delivered", + "(COUNT(trace.id) - COUNT(trace.trace_status) FILTER (WHERE trace.trace_status IN ('error', 'bounce', 'cancel'))) as delivered", "COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'error') as error", "COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'bounce') as bounced", - "COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'cancel') as cancel", + "COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'cancel') as canceled", "COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'open') as opened", "COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'reply') as replied", "COUNT(trace.links_click_datetime) as clicked", diff --git a/addons/mass_mailing/report/mailing_trace_report_views.xml b/addons/mass_mailing/report/mailing_trace_report_views.xml index 51c70d9baee..a7e793872dc 100644 --- a/addons/mass_mailing/report/mailing_trace_report_views.xml +++ b/addons/mass_mailing/report/mailing_trace_report_views.xml @@ -1,17 +1,42 @@ + + mailing.trace.report.view.tree + mailing.trace.report + + + + + + + + + + + + + + + + + + + mailing.trace.report.view.pivot mailing.trace.report - + + - - + + + + @@ -20,10 +45,11 @@ mailing.trace.report.view.graph mailing.trace.report - + - + + @@ -35,9 +61,9 @@ - + - + - + @@ -59,8 +85,14 @@ Mass Mailing Analysis mailing.trace.report [('mailing_type', '=', 'mail')] - graph,pivot -

Mass Mailing Statistics allows you to check different mailing related information like number of bounced mails, opened mails, replied mails. You can sort out your analysis by different groups to get accurate grained analysis.

+ graph,pivot,tree + +

+ Mass Mailing Statistics allows you to check different mailing related information + like number of bounced mails, opened mails, replied mails. You can sort out + your analysis by different groups to get accurate grained analysis. +

+
+ + mailing.sms.trace.report.view.tree + mailing.trace.report + + + primary + tree + + + 1 + + + 1 + + + + mailing.sms.trace.report.view.pivot mailing.trace.report @@ -8,6 +25,9 @@ primary pivot + + 1 + 1 @@ -32,7 +52,7 @@ SMS Marketing Analysis mailing.trace.report - graph,pivot + graph,pivot,tree [('mailing_type', '=', 'sms')]

@@ -56,6 +76,13 @@ + + 2 + tree + + + +