[FIX] mass_mailing: Display attachments in a proper way [IMP] mass_mailing: set default value for popup_redirect_url, as it's sometimes required
914 lines
49 KiB
XML
914 lines
49 KiB
XML
<?xml version="1.0"?>
|
|
<openerp>
|
|
<data>
|
|
<template id="assets_backend" name="mass_mailing assets" inherit_id="web.assets_backend">
|
|
<xpath expr="." position="inside">
|
|
<link rel="stylesheet" href="/mass_mailing/static/src/less/mass_mailing.less"/>
|
|
<link rel="stylesheet" href="/mass_mailing/static/src/css/email_template.css"/>
|
|
<script type="text/javascript" src="/mass_mailing/static/src/js/mass_mailing.js"></script>
|
|
</xpath>
|
|
</template>
|
|
|
|
<!-- Marketing / Mass Mailing -->
|
|
<menuitem name="Mass Mailing" id="mass_mailing_menu_root" sequence="60" web_icon="mass_mailing,static/description/icon.png"/>
|
|
<menuitem name="Mailings" id="mass_mailing_menu"
|
|
parent="mass_mailing_menu_root" sequence="1" groups="mass_mailing.group_mass_mailing_user"/>
|
|
<!-- Marketing / Configuration -->
|
|
<menuitem name="Configuration" id="mass_mailing_configuration"
|
|
parent="mass_mailing_menu_root" sequence="100" groups="base.group_configuration"/>
|
|
|
|
<!-- After installation of the module, open the related menu -->
|
|
<record id="action_client_mass_mailing_menu" model="ir.actions.client">
|
|
<field name="name">Open Mass Mailing Menu</field>
|
|
<field name="tag">reload</field>
|
|
<field name="params" eval="{'menu_id': ref('mass_mailing_menu_root')}"/>
|
|
</record>
|
|
<record id="base.open_menu" model="ir.actions.todo">
|
|
<field name="action_id" ref="action_client_mass_mailing_menu"/>
|
|
<field name="state">open</field>
|
|
</record>
|
|
|
|
<!-- MAIL MAIL STATISTICS !-->
|
|
<record model="ir.ui.view" id="view_mail_mail_statistics_search">
|
|
<field name="name">mail.mail.statistics.search</field>
|
|
<field name="model">mail.mail.statistics</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="Received" name="filter_received" domain="[('sent', '!=', False), ('bounced', '=', False)]"/>
|
|
<filter string="Opened" name="filter_opened" domain="[('opened', '!=', 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" 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" domain="[]" context="{'group_by':'state_update'}"/>
|
|
<filter string="Mass Mailing" domain="[]" context="{'group_by':'mass_mailing_id'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mail_statistics_tree">
|
|
<field name="name">mail.mail.statistics.tree</field>
|
|
<field name="model">mail.mail.statistics</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mail Statistics">
|
|
<field name="recipient"/>
|
|
<field name="mail_mail_id_int"/>
|
|
<field name="message_id"/>
|
|
<field name="sent"/>
|
|
<field name="exception"/>
|
|
<field name="opened"/>
|
|
<field name="replied"/>
|
|
<field name="bounced"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mail_statistics_form">
|
|
<field name="name">mail.mail.statistics.form</field>
|
|
<field name="model">mail.mail.statistics</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Mail Statistics">
|
|
<group>
|
|
<group>
|
|
<field name="recipient"/>
|
|
<field name="mail_mail_id"/>
|
|
<field name="mail_mail_id_int"/>
|
|
<field name="message_id"/>
|
|
<field name="exception"/>
|
|
<field name="sent"/>
|
|
<field name="opened"/>
|
|
<field name="replied"/>
|
|
<field name="bounced"/>
|
|
</group>
|
|
<group>
|
|
<field name="mass_mailing_id"/>
|
|
<field name="mass_mailing_campaign_id"/>
|
|
<field name="model"/>
|
|
<field name="res_id"/>
|
|
</group>
|
|
</group>
|
|
</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">mail.mail.statistics</field>
|
|
<field name="view_type">form</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">mail.mail.statistics</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">graph,tree,form</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">mail.mail.statistics</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"/>
|
|
|
|
<!-- MASS MAILING CONTACT -->
|
|
|
|
<!-- Custom reports (aka filters) -->
|
|
<record id="filter_contact_subscription" model="ir.filters">
|
|
<field name="name">List Subscription</field>
|
|
<field name="model_id">mail.mass_mailing.contact</field>
|
|
<field name="user_id" eval="False"/>
|
|
<field name="context">{'group_by': ['create_date:month'], 'col_group_by': ['list_id']}</field>
|
|
</record>
|
|
<record id="filter_contact_unsubscription" model="ir.filters">
|
|
<field name="name">List Unsubscription</field>
|
|
<field name="model_id">mail.mass_mailing.contact</field>
|
|
<field name="user_id" eval="False"/>
|
|
<field name="domain">[('opt_out','=',True)]</field>
|
|
<field name="context">{'group_by': ['unsubscription_date:month'], 'col_group_by': ['list_id']}</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_contact_search">
|
|
<field name="name">mail.mass_mailing.contact.search</field>
|
|
<field name="model">mail.mass_mailing.contact</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Mailing Lists Subscribers">
|
|
<field name="name"/>
|
|
<field name="email"/>
|
|
<field name="list_id"/>
|
|
<separator/>
|
|
<filter string="Exclude Opt Out" name="not_opt_out" domain="[('opt_out', '=', False)]"/>
|
|
<separator/>
|
|
<filter string="Exclude Dead" name="not_bounced" domain="[('message_bounce', '<', 5)]"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="Creation Date" name="group_create_date"
|
|
context="{'group_by': 'create_date'}"/>
|
|
<filter string="Mailing Lists" name="group_list_id"
|
|
context="{'group_by': 'list_id'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_contact_tree">
|
|
<field name="name">mail.mass_mailing.contact.tree</field>
|
|
<field name="model">mail.mass_mailing.contact</field>
|
|
<field name="priority">10</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mailing Lists Subscribers" editable="top">
|
|
<field name="email"/>
|
|
<field name="name"/>
|
|
<field name="list_id"/>
|
|
<field name="message_bounce"/>
|
|
<field name="create_date"/>
|
|
<field name="unsubscription_date" readonly="1"/>
|
|
<field name="opt_out" on_change="on_change_opt_out(opt_out)"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_contact_graph">
|
|
<field name="name">mail.mass_mailing.contact.graph</field>
|
|
<field name="model">mail.mass_mailing.contact</field>
|
|
<field name="priority">10</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Mailing Lists Subscriber" type="pivot" stacked="True">
|
|
<field name="create_date" type="row"/>
|
|
<field name="list_id" type="col"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window" id="action_view_mass_mailing_contacts">
|
|
<field name="name">Mailing List Subscribers</field>
|
|
<field name="res_model">mail.mass_mailing.contact</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,graph</field>
|
|
<field name="context">{'search_default_not_opt_out': 1}</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window" id="action_view_mass_mailing_contacts_from_list">
|
|
<field name="name">Recipients</field>
|
|
<field name="res_model">mail.mass_mailing.contact</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form,graph</field>
|
|
<field name="context">{'search_default_list_id': active_id, 'search_default_not_opt_out': 1}</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to create a recipient.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem name="Contacts" id="menu_email_mass_mailing_contacts"
|
|
parent="mass_mailing_menu" sequence="4" groups="base.group_no_one"
|
|
action="action_view_mass_mailing_contacts"/>
|
|
|
|
<!-- MASS MAILING LIST -->
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_list_search">
|
|
<field name="name">mail.mass_mailing.list.search</field>
|
|
<field name="model">mail.mass_mailing.list</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Mailing Lists">
|
|
<field name="name"/>
|
|
<field name="create_date"/>
|
|
<filter name="inactive" string="Archived" domain="[('active','=',False)]"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="Creation Month" name="group_create_date"
|
|
context="{'group_by': 'create_date'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_list_tree">
|
|
<field name="name">mail.mass_mailing.list.tree</field>
|
|
<field name="model">mail.mass_mailing.list</field>
|
|
<field name="priority">10</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mailing Lists">
|
|
<field name="name"/>
|
|
<field name="create_date"/>
|
|
<field name="contact_nbr"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_list_form">
|
|
<field name="name">mail.mass_mailing.list.form</field>
|
|
<field name="model">mail.mass_mailing.list</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Contact List">
|
|
<sheet>
|
|
<div class="oe_button_box" name="button_box">
|
|
<button name="toggle_active" type="object"
|
|
class="oe_stat_button" icon="fa-archive">
|
|
<field name="active" widget="boolean_button"
|
|
options='{"terminology": "archive"}'/>
|
|
</button>
|
|
<button name="%(mass_mailing.action_view_mass_mailing_contacts_from_list)d"
|
|
type="action" icon="fa-user" class="oe_stat_button">
|
|
<field name="contact_nbr" string="Recipients" widget="statinfo"/>
|
|
</button>
|
|
</div>
|
|
<div class="oe_title">
|
|
<label for="name" class="oe_edit_only"/>
|
|
<h1>
|
|
<field name="name" placeholder="e.g. Consumer Newsletter"/>
|
|
</h1>
|
|
<group groups="mass_mailing.group_website_popup_on_exit">
|
|
<field name="popup_redirect_url"/>
|
|
</group>
|
|
</div>
|
|
<notebook groups="mass_mailing.group_website_popup_on_exit">
|
|
<page string="Popup Content">
|
|
<field name="popup_content" widget="html_frame" options="{'editor_url': '/website_mass_mailing/field/popup_content'}"/>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window" id="action_view_mass_mailing_lists">
|
|
<field name="name">Mailing Lists</field>
|
|
<field name="res_model">mail.mass_mailing.list</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click here to create a new mailing list.
|
|
</p><p>
|
|
Mailing lists allows you to to manage customers and
|
|
contacts easily and to send to mailings in a single click.
|
|
</p></field>
|
|
</record>
|
|
|
|
<menuitem name="Mailing Lists" id="menu_email_mass_mailing_lists"
|
|
parent="mass_mailing_menu" sequence="3"
|
|
action="action_view_mass_mailing_lists"/>
|
|
|
|
<!-- MASS MAILING !-->
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_search">
|
|
<field name="name">mail.mass_mailing.search</field>
|
|
<field name="model">mail.mass_mailing</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Mass Mailings">
|
|
<field name="name" string="Mailings"/>
|
|
<field name="mass_mailing_campaign_id"/>
|
|
<filter name="inactive" string="Archived" domain="[('active','=',False)]"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="Status" name="group_state"
|
|
context="{'group_by': 'state'}"/>
|
|
<filter string="Sent By" domain="[]"
|
|
context="{'group_by':'email_from'}"/>
|
|
<separator/>
|
|
<filter string="Sent Month"
|
|
domain="[]" context="{'group_by':'sent_date:month'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_tree">
|
|
<field name="name">mail.mass_mailing.tree</field>
|
|
<field name="model">mail.mass_mailing</field>
|
|
<field name="priority">10</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mass Mailings">
|
|
<field name="name"/>
|
|
<field name="sent"/>
|
|
<field name="delivered"/>
|
|
<field name="opened"/>
|
|
<field name="replied"/>
|
|
<field name="mass_mailing_campaign_id"
|
|
groups="mass_mailing.group_mass_mailing_campaign"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_links_tree">
|
|
<field name="name">link.tracker.tree</field>
|
|
<field name="model">link.tracker</field>
|
|
<field name="priority">10</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mailing Statistics of Clicks">
|
|
<field name="title"/>
|
|
<field name="url"/>
|
|
<field name="count"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_links_search">
|
|
<field name="name">link.tracker.search</field>
|
|
<field name="model">link.tracker</field>
|
|
<field name="inherit_id" ref="link_tracker.view_link_tracker_filter"/>
|
|
<field name="arch" type="xml">
|
|
<search string="Tracked Link">
|
|
<field name="mass_mailing_id"/>
|
|
<field name="mass_mailing_campaign_id"/>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window" id="action_view_mass_mailing_links_statistics">
|
|
<field name="name">Statistics of Clicks</field>
|
|
<field name="res_model">link.tracker</field>
|
|
<field name="view_mode">tree</field>
|
|
<field name="context">{'search_default_mass_mailing_id': active_id}</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_form">
|
|
<field name="name">mail.mass_mailing.form</field>
|
|
<field name="model">mail.mass_mailing</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Mass Mailing">
|
|
<header style="min-height:31px;">
|
|
<button name="action_test_mailing" type="object" class="oe_highlight" string="Test Mailing"/>
|
|
<button name="put_in_queue" type="object" attrs="{'invisible': ['|', ('state', 'in', ('in_queue', 'done'))]}" class="oe_highlight" string="Send to All"/>
|
|
<button name="cancel_mass_mailing" type="object" attrs="{'invisible': [('state', '!=', 'in_queue')]}" class="oe_highlight" string="Cancel"/>
|
|
<button name="retry_failed_mail" type="object" attrs="{'invisible': ['|', ('state', '!=', 'done'), ('failed', '=', 0)]}" class="oe_highlight" string="Retry"/>
|
|
|
|
<field name="state" readonly="1" widget="statusbar"/>
|
|
</header>
|
|
<div class="oe_form_box_info oe_text_center" attrs="{'invisible': [('scheduled', '=', 0)]}">
|
|
<p><strong>
|
|
<field name="scheduled" class="oe_inline"/>
|
|
emails are in queue and will be sent soon.
|
|
</strong></p>
|
|
</div>
|
|
<div class="oe_form_box_info oe_text_center" attrs="{'invisible': ['|', ('state', '!=', 'done'), ('failed', '=', 0)]}">
|
|
<p><strong>
|
|
<field name="failed" class="oe_inline"/>
|
|
emails could not be sent.
|
|
</strong></p>
|
|
</div>
|
|
<div class="oe_form_box_info oe_text_center" attrs="{'invisible': [('state', '!=', 'in_queue')]}">
|
|
<p><strong>
|
|
This mass mailing is scheduled to
|
|
<field name="next_departure" class="oe_inline"/>
|
|
</strong></p>
|
|
</div>
|
|
<sheet>
|
|
<div class="oe_button_box" name="button_box" attrs="{'invisible': [('state', 'in', ('draft','test'))]}">
|
|
<button name="%(action_view_mail_mail_statistics_mailing)d" type="action"
|
|
icon="fa-envelope-o" class="oe_stat_button"
|
|
attrs="{'invisible': [('sent', '=', 0)]}" >
|
|
<field name="sent" string="Emails Sent" widget="statinfo"/>
|
|
</button>
|
|
<button name="%(action_view_mail_mail_statistics_mailing)d"
|
|
context="{'search_default_filter_received': True}"
|
|
type="action" class="oe_stat_button">
|
|
<field name="received_ratio" string="Received" widget="percentpie"/>
|
|
</button>
|
|
<button name="%(action_view_mail_mail_statistics_mailing)d"
|
|
context="{'search_default_filter_opened': True}"
|
|
type="action" class="oe_stat_button">
|
|
<field name="opened_ratio" string="Opened" widget="percentpie"/>
|
|
</button>
|
|
<button name="%(action_view_mail_mail_statistics_mailing)d"
|
|
context="{'search_default_filter_replied': True}"
|
|
type="action" class="oe_stat_button">
|
|
<field name="replied_ratio" string="Replied" widget="percentpie"/>
|
|
</button>
|
|
<button name="%(action_view_mass_mailing_links_statistics)d"
|
|
type="action" class="oe_stat_button">
|
|
<field name="clicks_ratio" string="Clicks" widget="percentpie"/>
|
|
</button>
|
|
<button name="%(action_view_mail_mail_statistics_mailing)d"
|
|
context="{'search_default_filter_bounced': True}"
|
|
type="action" class="oe_stat_button">
|
|
<field name="bounced_ratio" string="Bounced" widget="percentpie"/>
|
|
</button>
|
|
<button name="toggle_active" type="object"
|
|
class="oe_stat_button" icon="fa-archive">
|
|
<field name="active" widget="boolean_button"
|
|
options='{"terminology": "archive"}'/>
|
|
</button>
|
|
</div>
|
|
|
|
<group>
|
|
<field name="email_from"/>
|
|
<field name="name"/>
|
|
<label for="mailing_model" string="Recipients"/>
|
|
<div>
|
|
<field name="mailing_model" widget="radio" style="margin-bottom: 8px"
|
|
on_change="on_change_model_and_list(mailing_model, contact_list_ids)"/>
|
|
|
|
<field name="mailing_domain" widget="char_domain"
|
|
placeholder="Select recipients"
|
|
attrs="{'invisible': [('mailing_model', '=', 'mail.mass_mailing.contact')]}"
|
|
options="{'model_field': 'mailing_model', 'model_domain': 'mailing_domain'}"
|
|
context="{'search_default_not_opt_out':1}"/>
|
|
|
|
<div attrs="{'invisible': [('mailing_model', '<>', 'mail.mass_mailing.contact')]}">
|
|
<label for="contact_list_ids" string="Select mailing lists:" class="oe_edit_only"/>
|
|
<field name="contact_list_ids" widget="many2many_tags"
|
|
placeholder="Select mailing lists..." class="oe_inline"
|
|
on_change="on_change_model_and_list(mailing_model, contact_list_ids)"/>
|
|
</div>
|
|
</div>
|
|
<label for="attachment_ids"/>
|
|
<div>
|
|
<field name="attachment_ids" widget="many2many_binary" string="Attach a file" class="oe_inline"/>
|
|
</div>
|
|
</group>
|
|
<notebook>
|
|
<page string="Mail Body">
|
|
<field name="body_html" widget="html_frame" options="{'editor_url': '/mass_mailing/field/email_template'}"/>
|
|
</page>
|
|
<page string="Options">
|
|
<group>
|
|
<group string="Mailing">
|
|
<field name="keep_archives" groups="base.group_no_one"/>
|
|
<label for="reply_to"/>
|
|
<div>
|
|
<field name="reply_to_mode" widget="radio"
|
|
attrs="{'invisible': [('mailing_model', 'in', ['mail.mass_mailing.contact', 'res.partner'])]}"/>
|
|
<field name="reply_to"
|
|
attrs="{'required': [('reply_to_mode', '=', 'email')]}"/>
|
|
</div>
|
|
<field name="schedule_date" />
|
|
<field name="create_date" readonly="1" attrs="{'invisible': [('create_date', '=', False)]}"/>
|
|
<field name="sent_date" readonly="1" attrs="{'invisible': [('sent_date', '=', False)]}"/>
|
|
</group>
|
|
<group string="Campaign">
|
|
<field name="mass_mailing_campaign_id" groups="mass_mailing.group_mass_mailing_campaign" string="Campaign" on_change="onchange_mass_mailing_campaign_id(mass_mailing_campaign_id)"/>
|
|
<label for="contact_ab_pc"/>
|
|
<div>
|
|
<field name="contact_ab_pc" class="oe_inline"/> %
|
|
</div>
|
|
</group>
|
|
</group>
|
|
</page>
|
|
<page string="Tracking" groups="base.group_no_one">
|
|
<group>
|
|
<field name="campaign_id" attrs="{'invisible': True}" />
|
|
<field name="medium_id" />
|
|
<field name="source_id" />
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_kanban">
|
|
<field name="name">mail.mass_mailing.kanban</field>
|
|
<field name="model">mail.mass_mailing</field>
|
|
<field name="arch" type="xml">
|
|
<kanban default_group_by='state'>
|
|
<field name='color'/>
|
|
<field name='total'/>
|
|
<field name='failed'/>
|
|
<field name='sent_date'/>
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click oe_kanban_mass_mailing">
|
|
<div class="o_dropdown_kanban dropdown">
|
|
|
|
<a class="dropdown-toggle btn" data-toggle="dropdown" href="#" >
|
|
<span class="fa fa-bars fa-lg"/>
|
|
</a>
|
|
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
|
|
<t t-if="widget.deletable">
|
|
<li><a type="delete">Delete</a></li>
|
|
</t>
|
|
</ul>
|
|
</div>
|
|
<div class="oe_kanban_content">
|
|
<div class="o_title">
|
|
<h3><field name="name"/></h3>
|
|
<div attrs="{'invisible': [('sent_date', '=', False)]}">
|
|
<h4 style="display: inline;"><field name="mass_mailing_campaign_id" groups="mass_mailing.group_mass_mailing_campaign"/></h4>
|
|
<t t-if="record.mass_mailing_campaign_id.raw_value" groups="mass_mailing.group_mass_mailing_campaign"> - </t><field name="sent_date"/>
|
|
</div>
|
|
</div>
|
|
<div attrs="{'invisible': [('sent_date', '=', False)]}">
|
|
<t t-if="record.sent_date">
|
|
<div class="row">
|
|
<div class="col-xs-8">
|
|
<a>Opened</a>
|
|
</div>
|
|
<div class="col-xs-4 text-right">
|
|
<field name="opened_ratio"/> %
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-xs-8">
|
|
<a>Replied</a>
|
|
</div>
|
|
<div class="col-xs-4 text-right">
|
|
<field name="replied_ratio"/> %
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-xs-8">
|
|
<a>Clicks</a>
|
|
</div>
|
|
<div class="col-xs-4 text-right">
|
|
<field name="clicks_ratio"/> %
|
|
</div>
|
|
</div>
|
|
<div class='o_kanban_primary_bottom'>
|
|
<field name="delivered" widget="progress" options="{'title': 'Delivered', 'current_value': 'delivered', 'max_value': 'total', 'editable': false}"/>
|
|
</div>
|
|
</t>
|
|
</div>
|
|
</div>
|
|
<div class="oe_clear"></div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_mail_mass_mailing_graph" model="ir.ui.view">
|
|
<field name="name">mail.mass_mailing.graph</field>
|
|
<field name="model">mail.mass_mailing</field>
|
|
<field name="arch" type="xml">
|
|
<graph string="Mass Mailing" type="bar">
|
|
<field name="state" type="row"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_view_mass_mailings" model="ir.actions.act_window">
|
|
<field name="name">Mass Mailings</field>
|
|
<field name="res_model">mail.mass_mailing</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">kanban,tree,form,graph</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click here to create a new mailing.
|
|
</p><p>
|
|
Mass mailing allows you to to easily design and send mass mailings to your contacts, customers or leads using mailing lists.
|
|
</p></field>
|
|
</record>
|
|
|
|
<record id="action_view_mass_mailings_from_campaign" model="ir.actions.act_window">
|
|
<field name="name">Mass Mailings</field>
|
|
<field name="res_model">mail.mass_mailing</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">kanban,tree,form</field>
|
|
<field name="context">{
|
|
'search_default_mass_mailing_campaign_id': [active_id],
|
|
'default_mass_mailing_campaign_id': active_id,
|
|
}
|
|
</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click here to create a new mailing.
|
|
</p><p>
|
|
Mass mailing allows you to to easily design and send mass mailings to your contacts, customers or leads using mailing lists.
|
|
</p></field>
|
|
</record>
|
|
|
|
<record id="action_create_mass_mailings_from_campaign" model="ir.actions.act_window">
|
|
<field name="name">Mass Mailings</field>
|
|
<field name="res_model">mail.mass_mailing</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">form,kanban,tree</field>
|
|
<field name="context">{
|
|
'search_default_mass_mailing_campaign_id': [active_id],
|
|
'default_mass_mailing_campaign_id': active_id,
|
|
}
|
|
</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click here to create a new mailing.
|
|
</p><p>
|
|
Mass mailing allows you to to easily design and send mass mailings to your contacts, customers or leads using mailing lists.
|
|
</p></field>
|
|
</record>
|
|
|
|
<record id="action_create_ab_mass_mailings_from_campaign" model="ir.actions.act_window">
|
|
<field name="name">Mass Mailings</field>
|
|
<field name="res_model">mail.mass_mailing</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">form,kanban,tree</field>
|
|
<field name="context">{
|
|
'search_default_mass_mailing_campaign_id': [active_id],
|
|
'default_mass_mailing_campaign_id': active_id,
|
|
'default_contact_ab_pc': 10,
|
|
}
|
|
</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click here to create a new mailing.
|
|
</p><p>
|
|
Mass mailing allows you to to easily design and send mass mailings to your contacts, customers or leads using mailing lists.
|
|
</p></field>
|
|
</record>
|
|
|
|
<menuitem name="Mass Mailings" id="menu_email_mass_mailings"
|
|
parent="mass_mailing_menu" sequence="2"
|
|
action="action_view_mass_mailings"/>
|
|
|
|
<!-- MASS MAILING CAMPAIGN STAGE !-->
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_stage_search">
|
|
<field name="name">mail.mass_mailing.stage.search</field>
|
|
<field name="model">mail.mass_mailing.stage</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Mass Mailings">
|
|
<field name="name"/>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_stage_tree">
|
|
<field name="name">mail.mass_mailing.stage.tree</field>
|
|
<field name="model">mail.mass_mailing.stage</field>
|
|
<field name="priority">10</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mass Mailings" editable="top">
|
|
<field name="sequence" widget="handle"/>
|
|
<field name="name"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
<record id="action_view_mass_mailing_stages" model="ir.actions.act_window">
|
|
<field name="name">Mass Mailing Stages</field>
|
|
<field name="res_model">mail.mass_mailing.stage</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">tree,form</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_mass_mailing_configuration" name="Configuration" parent="mass_mailing_menu_root"
|
|
sequence="100" groups="mass_mailing.group_mass_mailing_user,base.group_configuration"/>
|
|
|
|
<menuitem name="Campaign Stages" id="menu_view_mass_mailing_stages"
|
|
parent="menu_mass_mailing_configuration" sequence="1"
|
|
groups="mass_mailing.group_mass_mailing_campaign"
|
|
action="action_view_mass_mailing_stages"/>
|
|
|
|
<!-- MASS MAILING CAMPAIGNS !-->
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_campaign_search">
|
|
<field name="name">mail.mass_mailing.campaign.search</field>
|
|
<field name="model">mail.mass_mailing.campaign</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Mass Mailing Campaigns">
|
|
<field name="name" string="Campaigns"/>
|
|
<field name="tag_ids"/>
|
|
<field name="user_id"/>
|
|
<group expand="0" string="Group By">
|
|
<filter string="Stage" name="group_stage_id"
|
|
context="{'group_by': 'stage_id'}"/>
|
|
<filter string="Responsible" name="group_user_id"
|
|
context="{'group_by': 'user_id'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_campaign_tree">
|
|
<field name="name">mail.mass_mailing.campaign.tree</field>
|
|
<field name="model">mail.mass_mailing.campaign</field>
|
|
<field name="priority">10</field>
|
|
<field name="arch" type="xml">
|
|
<tree string="Mass Mailing Campaigns">
|
|
<field name="name"/>
|
|
<field name="user_id"/>
|
|
<field name="stage_id"/>
|
|
<field name="tag_ids"/>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.actions.act_window" id="dropdb snipp">
|
|
<field name="name">Statistics of Clicks</field>
|
|
<field name="res_model">link.tracker</field>
|
|
<field name="view_mode">tree</field>
|
|
<field name="context">{'search_default_mass_mailing_campaign_id': active_id}</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_campaign_form">
|
|
<field name="name">mail.mass_mailing.campaign.form</field>
|
|
<field name="model">mail.mass_mailing.campaign</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Mass Mailing Campaign">
|
|
<header style="min-height:31px;">
|
|
<button name="%(action_create_mass_mailings_from_campaign)d" type="action" class="oe_highlight" string="Send new Mass Mailing"/>
|
|
<button name="%(action_create_ab_mass_mailings_from_campaign)d" type="action" class="oe_highlight" string="Send new A/B Testing Mass Mailing"/>
|
|
<span><field name="stage_id" widget="statusbar" clickable="True"/></span>
|
|
</header>
|
|
<sheet>
|
|
<field name="total" invisible="1"/>
|
|
<div class="oe_button_box" name="button_box"
|
|
attrs="{'invisible': [('total', '=', 0)]}">
|
|
<button name="%(action_view_mass_mailings_from_campaign)d"
|
|
type="action" class="oe_stat_button" icon="fa-envelope-o">
|
|
<field name="total_mailings" widget="statinfo" string="Mailings"/>
|
|
</button>
|
|
<button name="%(action_view_mail_mail_statistics_mailing)d" type="action"
|
|
icon="fa-envelope-o" class="oe_stat_button"
|
|
attrs="{'invisible': [('sent', '=', 0)]}" >
|
|
<field name="sent" string="Emails Sent" widget="statinfo"/>
|
|
</button>
|
|
<button name="%(action_view_mass_mailing_contacts)d"
|
|
type="action" class="oe_stat_button">
|
|
<field name="received_ratio" widget="percentpie" string="Received"/>
|
|
</button>
|
|
<button name="%(action_view_mass_mailing_contacts)d"
|
|
type="action" class="oe_stat_button">
|
|
<field name="opened_ratio" widget="percentpie" string="Opened"/>
|
|
</button>
|
|
<button name="%(action_view_mass_mailing_contacts)d"
|
|
type="action" class="oe_stat_button">
|
|
<field name="replied_ratio" widget="percentpie" string="Replied"/>
|
|
</button>
|
|
<button name="%(dropdb snipp)d"
|
|
type="action" class="oe_stat_button">
|
|
<field name="clicks_ratio" widget="percentpie" string="Clicks"/>
|
|
</button>
|
|
</div>
|
|
<group>
|
|
<field name="name" string="Campaign Name" on_change="on_change_campaign_name(name)"/>
|
|
<field name="user_id"/>
|
|
<field name="tag_ids" widget="many2many_tags"/>
|
|
</group>
|
|
<notebook>
|
|
<page string="Tracking">
|
|
<group>
|
|
<field name="campaign_id" attrs="{'invisible': True}"/>
|
|
<field name="medium_id" />
|
|
<field name="source_id" />
|
|
</group>
|
|
</page>
|
|
<page string="Related Mailings" groups="base.group_no_one">
|
|
<field name="mass_mailing_ids" readonly="1" string="Related Mailing(s)">
|
|
<tree>
|
|
<field name="name"/>
|
|
<field name="sent_date"/>
|
|
<field name="state"/>
|
|
<field name="delivered"/>
|
|
<field name="opened"/>
|
|
<field name="replied"/>
|
|
<field name="bounced"/>
|
|
<button name="action_duplicate" type="object" string="Duplicate"/>
|
|
</tree>
|
|
</field>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record model="ir.ui.view" id="view_mail_mass_mailing_campaign_kanban">
|
|
<field name="name">mail.mass_mailing.campaign.kanban</field>
|
|
<field name="model">mail.mass_mailing.campaign</field>
|
|
<field name="arch" type="xml">
|
|
<kanban default_group_by='stage_id'>
|
|
<field name='total'/>
|
|
<field name='color'/>
|
|
<field name='user_id'/>
|
|
<field name='mass_mailing_ids'/>
|
|
<field name="stage_id"/>
|
|
<templates>
|
|
<t t-name="kanban-box">
|
|
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click oe_kanban_mass_mailing_campaign">
|
|
<div class="o_dropdown_kanban dropdown">
|
|
|
|
<a class="dropdown-toggle btn" data-toggle="dropdown" href="#" >
|
|
<span class="fa fa-bars fa-lg"/>
|
|
</a>
|
|
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
|
|
<t t-if="widget.editable">
|
|
<li><a type="edit">Settings</a></li>
|
|
</t>
|
|
<t t-if="widget.deletable">
|
|
<li><a type="delete">Delete</a></li>
|
|
</t>
|
|
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
|
|
</ul>
|
|
</div>
|
|
<div class="oe_kanban_content">
|
|
<div>
|
|
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)"
|
|
t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar pull-right"/>
|
|
<h3 class="oe_margin_bottom_8"><field name="name"/></h3>
|
|
<field name="tag_ids"/>
|
|
<a name="%(action_view_mass_mailings_from_campaign)d" type="action"
|
|
class="oe_mailings">
|
|
<h4 class="oe_margin_top_8"><t t-raw="record.mass_mailing_ids.raw_value.length"/> Mailings</h4>
|
|
</a>
|
|
</div>
|
|
<div class="oe_clear"></div>
|
|
<div>
|
|
<div style="display: inline-block">
|
|
<field name="delivered" widget="gauge" style="width:120px; height: 90px;"
|
|
options="{'max_field': 'total'}"/>
|
|
</div>
|
|
<div style="display: inline-block; vertical-align: top;">
|
|
<strong>Opened</strong> <field name="opened_ratio"/> %<br />
|
|
<strong>Replied</strong> <field name="replied_ratio"/> % <br />
|
|
<strong>Clicks</strong> <field name="clicks_ratio"/> % <br />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="oe_clear"></div>
|
|
</div>
|
|
</t>
|
|
</templates>
|
|
</kanban>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_view_mass_mailing_campaigns" model="ir.actions.act_window">
|
|
<field name="name">Mass Mailing Campaigns</field>
|
|
<field name="res_model">mail.mass_mailing.campaign</field>
|
|
<field name="view_type">form</field>
|
|
<field name="view_mode">kanban,tree,form</field>
|
|
<field name="help" type="html">
|
|
<p class="oe_view_nocontent_create">
|
|
Click to define a new mass mailing campaign.
|
|
</p><p>
|
|
Create a campaign to structure mass mailing and get analysis from email status.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- Cron that process the mass mailing queue -->
|
|
<record id="ir_cron_mass_mailing_queue" model="ir.cron">
|
|
<field name="name">Process Mass Mailing Queue</field>
|
|
<field eval="True" name="active" />
|
|
<field name="user_id" ref="base.user_root" />
|
|
<field name="interval_number">60</field>
|
|
<field name="interval_type">minutes</field>
|
|
<field name="numbercall">-1</field>
|
|
<field eval="False" name="doall" />
|
|
<field name="model">mail.mass_mailing</field>
|
|
<field name="function">_process_mass_mailing_queue</field>
|
|
<field name="args">()</field>
|
|
</record>
|
|
|
|
<menuitem name="Campaigns" id="menu_email_campaigns"
|
|
parent="mass_mailing_menu_root" sequence="5"
|
|
action="action_view_mass_mailing_campaigns"
|
|
groups="mass_mailing.group_mass_mailing_campaign"/>
|
|
|
|
</data>
|
|
</openerp>
|