PURPOSE
Mass mailing is currently a bit messy. As SMS will be added as a way to notify
people in mass through SMS let us take this opportunity to somehow clean this
application: organization, light code cleaning, model renaming.
SPECIFICATIONS
Rename mail.mail.statistics to mailing.trace and mail.statistics.report
to mail.trace.report. Rationale :
* mail.mail.statistics is linked to mail.mail model. Soon this model will
hold data related to SMS sending. It makes sense to be broader in the
naming;
* mailing.trace is more inlined with marketing.trace model that is the
marketing automation model using it in marketing automation (enterprise
application);
* mailing.trace is shorter to write;
* mail.statistics.report model should sense to be updated at the same
time;
MIGRATION
mail.mail.statistics model -> mailing.trace
mail_mail_statistics table -> mailing_trace
mail.statistics.report model -> mail.trace.report
fields updated (w column change)
* link.tracker.click: mail_stat_id -> mailing_trace_id
fields updated (no column change)
* mail.mail: statistics_ids -> mailing_trace_ids
* mail.mass_mailing: statistics_ids -> mailing_trace_ids
LINKS
Task ID 2037906
Preparing task ID 1997464 (SMS addition in mass mailing)
PR #34938
127 lines
6.4 KiB
XML
127 lines
6.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- MAILING TRACE !-->
|
|
<record model="ir.ui.view" id="mailing_trace_view_search">
|
|
<field name="name">mailing.trace.search</field>
|
|
<field name="model">mailing.trace</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Mail Statistics">
|
|
<field name="mail_mail_id_int"/>
|
|
<field name="message_id"/>
|
|
<field name="mass_mailing_id"/>
|
|
<filter string="Sent" name="filter_sent" domain="[('sent', '!=', False)]"/>
|
|
<filter string="Received" name="filter_received" domain="[('sent', '!=', False), ('bounced', '=', False)]"/>
|
|
<filter string="Scheduled" name="filter_scheduled" domain="[('scheduled', '!=', False), ('sent', '=', False), ('exception', '=', False)]"/>
|
|
<filter string="Failed" name="filter_failed" domain="[('scheduled', '!=', False), ('sent', '=', False), ('exception', '!=', False)]"/>
|
|
<filter string="Ignored" name="filter_ignored" domain="[('scheduled', '!=', False), ('sent', '=', False), ('exception', '=', False), ('ignored', '!=', False)]"/>
|
|
<separator/>
|
|
<filter string="Opened" name="filter_opened" domain="[('opened', '!=', False)]"/>
|
|
<filter string="Clicked" name="filter_clicked" domain="[('clicked', '!=', False)]"/>
|
|
<filter string="Replied" name="filter_replied" domain="[('replied', '!=', False)]"/>
|
|
<filter string="Bounced" name="filter_bounced" domain="[('bounced', '!=', False)]"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="State" name="state" domain="[]" context="{'group_by':'state'}"/>
|
|
<filter string="Open Date" name="group_open_date" context="{'group_by': 'opened:day'}"/>
|
|
<filter string="Reply Date" name="group_reply_date" context="{'group_by': 'replied:day'}"/>
|
|
<filter string="Last State Update" name="state_update" domain="[]" context="{'group_by':'state_update'}"/>
|
|
<filter string="Mass Mailing" name="mass_mailing" domain="[]" context="{'group_by':'mass_mailing_id'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="mailing_trace_view_tree">
|
|
<field name="name">mailing.trace.tree</field>
|
|
<field name="model">mailing.trace</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mail Statistics" create="0">
|
|
<field name="email"/>
|
|
<field name="state"/>
|
|
<field name="message_id"/>
|
|
<field name="sent"/>
|
|
<field name="exception"/>
|
|
<field name="opened"/>
|
|
<field name="clicked"/>
|
|
<field name="replied"/>
|
|
<field name="bounced"/>
|
|
<field name="ignored"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="mailing_trace_view_form">
|
|
<field name="name">mailing.trace.form</field>
|
|
<field name="model">mailing.trace</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Mail Statistics" create="0">
|
|
<header>
|
|
<field name="state" widget="statusbar"/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_form_box_info bg-info oe_text_center alert-info" attrs="{'invisible': [('exception', '=', False)]}" role="alert">
|
|
<p><strong>This email could not be sent.</strong></p>
|
|
</div>
|
|
<group>
|
|
<group>
|
|
<field name="email" string="Email"/>
|
|
<field name="mass_mailing_id"/>
|
|
<field name="mass_mailing_campaign_id" groups="mass_mailing.group_mass_mailing_campaign"/>
|
|
<field name="mail_mail_id_int" groups="base.group_no_one"/>
|
|
<field name="message_id" groups="base.group_no_one"/>
|
|
<field name="model" groups="base.group_no_one"/>
|
|
<field name="res_id" groups="base.group_no_one"/>
|
|
</group>
|
|
<group>
|
|
<field name="exception"/>
|
|
<field name="sent"/>
|
|
<field name="opened"/>
|
|
<field name="clicked"/>
|
|
<field name="replied"/>
|
|
<field name="bounced"/>
|
|
<field name="ignored"/>
|
|
</group>
|
|
</group>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_view_mail_mail_statistics" model="ir.actions.act_window">
|
|
<field name="name">Mail Statistics</field>
|
|
<field name="res_model">mailing.trace</field>
|
|
<field name="view_mode">tree,form</field>
|
|
</record>
|
|
|
|
<record id="action_view_mail_mail_statistics_mailing" model="ir.actions.act_window">
|
|
<field name="name">Mail Statistics</field>
|
|
<field name="res_model">mailing.trace</field>
|
|
<field name="view_mode">graph,tree,form,pivot</field>
|
|
<field name="domain">[]</field>
|
|
<field name="context">{'search_default_mass_mailing_id': active_id}</field>
|
|
</record>
|
|
|
|
<record id="action_view_mail_mail_statistics_mailing_list" model="ir.actions.act_window">
|
|
<field name="name">Emails Sent</field>
|
|
<field name="res_model">mailing.trace</field>
|
|
<field name="view_mode">tree,graph,form,pivot</field>
|
|
<field name="domain">[]</field>
|
|
<field name="context">{'search_default_mass_mailing_id': active_id}</field>
|
|
</record>
|
|
|
|
<record id="view_mail_mail_statistics_graph" model="ir.ui.view">
|
|
<field name="name">Mail Statistics Graph</field>
|
|
<field name="model">mailing.trace</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Mail Statistics" type="bar" stacked="True" interval="day">
|
|
<field name="state_update" type="row" interval="day"/>
|
|
<field name="state" type="row"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Add in Technical/Email -->
|
|
<menuitem name="Mail Statistics" id="menu_email_statistics"
|
|
parent="base.menu_email" sequence="50"
|
|
action="action_view_mail_mail_statistics"/>
|
|
</odoo>
|