The progress bar in the web kanban module uses the option 'title' in order to display the title of the gauge. However, this option is not taken into account when it comes to translation, because the translation of such option is not accessible at the JS level. The fix defines the title of the gauge as the parameter `title` of the widget. Indeed, such a parameter is in the list of parameters translated and made accessible in the JS layer (see variable TRANSLATED_ATTRS in translate.py). With such a modification, the translation is accessible on the node. opw-666577
915 lines
49 KiB
XML
915 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"
|
|
confirm="This will send the email to all recipients. Do you still want to proceed ?"/>
|
|
<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" title="Delivered" options="{'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>
|