19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:39 +01:00
parent 5df8c07b59
commit daa394e8b0
2114 changed files with 564841 additions and 299642 deletions

View file

@ -20,6 +20,8 @@ class MailingTraceReport(models.Model):
email_from = fields.Char('From', readonly=True)
# traces
scheduled = fields.Integer(readonly=True)
processing = fields.Integer(readonly=True)
pending = fields.Integer(readonly=True) # Used with SMS before a delivery report is received
sent = fields.Integer(readonly=True)
delivered = fields.Integer(readonly=True)
error = fields.Integer(readonly=True)
@ -59,8 +61,10 @@ class MailingTraceReport(models.Model):
'mailing.state',
'mailing.email_from',
"COUNT(trace.id) as scheduled",
'COUNT(trace.sent_datetime) as sent',
"(COUNT(trace.id) - COUNT(trace.trace_status) FILTER (WHERE trace.trace_status IN ('error', 'bounce', 'cancel'))) as delivered",
"COUNT(trace.sent_datetime) as sent",
"(COUNT(trace.id) - COUNT(trace.trace_status) FILTER (WHERE trace.trace_status IN ('outgoing', 'pending', 'process', 'error', 'bounce', 'cancel'))) as delivered",
"COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'process') as processing",
"COUNT(trace.trace_status) FILTER (WHERE trace.trace_status = 'pending') as pending",
"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 canceled",

View file

@ -1,17 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="mailing_trace_report_view_tree" model="ir.ui.view">
<field name="name">mailing.trace.report.view.tree</field>
<field name="name">mailing.trace.report.view.list</field>
<field name="model">mailing.trace.report</field>
<field name="arch" type="xml">
<tree string="Mass Mailing Statistics" sample="1">
<list string="Mass Mailing Statistics" sample="1">
<field name="name"/>
<field name="campaign" groups="mass_mailing.group_mass_mailing_campaign"/>
<field name="mailing_type" invisible="1"/>
<field name="mailing_type" column_invisible="True"/>
<field name="scheduled_date" string="Scheduled On"/>
<field name="state"/>
<field name="scheduled"/>
<field name="sent"/>
<field name="processing" optional="hide"/>
<field name="pending" optional="hide"/>
<field name="delivered"/>
<field name="opened"/>
<field name="replied"/>
@ -19,7 +21,7 @@
<field name="canceled" optional="hide"/>
<field name="error" optional="hide"/>
<field name="bounced" optional="hide"/>
</tree>
</list>
</field>
</record>
@ -63,10 +65,10 @@
<field name="name" string="Mailing"/>
<field name="campaign" string="Campaign" groups="mass_mailing.group_mass_mailing_campaign"/>
<filter name="filter_scheduled_date" date="scheduled_date"/>
<group expand="0" string="Extended Filters...">
<group>
<field name="scheduled_date"/>
</group>
<group expand="1" string="Group By...">
<group>
<filter string="Mass Mailing Campaign" domain="[]" name="mass_mailing_campaign"
context="{'group_by':'campaign'}" groups="mass_mailing.group_mass_mailing_campaign"/>
<filter string="State" domain="[]" name="state"
@ -86,13 +88,15 @@
<field name="name">Mass Mailing Analysis</field>
<field name="res_model">mailing.trace.report</field>
<field name="domain">[('mailing_type', '=', 'mail')]</field>
<field name="view_mode">graph,pivot,tree</field>
<field name="view_mode">graph,pivot,list</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
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.
</p>
</field>
<p class="o_view_nocontent_smiling_face">
No Mailing Data yet!
</p>
<p>
Use this menu to keep track of the results of your mailings.<br/>
From here, you'll be able to overview the rate of replies, clicks, bounces...
</p>
</field>
</record>
</odoo>