Files
odoo_source/addons/mass_mailing/views/mailing_mailing_views.xml
T
Thibault Delavallée 49d2899fbd [REF] mass_mailing: rename mail.mass_mailing model
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.mass_mailing model to mailing.mailing. Rationale :

  * mailing is now a prefix for mass mailing models;
  * mailing.mailing is easier to read / find / understand;

Note that mail.mass_mailing.campaign is not updated as it is likely to be
removed soon and replaced by simple utm.campaign model.

MIGRATION

mail.mass_mailing model -> mailing.mailing
mail_mass_mailing table -> mailing_mailing

LINKS

Task ID 2037906
Preparing task ID 1997464 (SMS addition in mass mailing)
PR #34938
2019-07-17 15:50:33 +00:00

667 lines
39 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- MAILING !-->
<record model="ir.ui.view" id="view_mail_mass_mailing_search">
<field name="name">mailing.mailing.search</field>
<field name="model">mailing.mailing</field>
<field name="arch" type="xml">
<search string="Mailings">
<field name="name" string="Mailings"/>
<field name="mass_mailing_campaign_id"/>
<filter string="My Mailings" name="assigned_to_me"
domain="[('user_id', '=', uid)]"
help="Mailings that are assigned to me"/>
<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" name="sent_by" domain="[]"
context="{'group_by':'email_from'}"/>
<separator/>
<filter string="Sent Period" name="sent_date"
domain="[]" context="{'group_by':'sent_date'}"/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_mail_mass_mailing_tree">
<field name="name">mailing.mailing.tree</field>
<field name="model">mailing.mailing</field>
<field name="priority">10</field>
<field name="arch" type="xml">
<tree string="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_form">
<field name="name">mailing.mailing.form</field>
<field name="model">mailing.mailing</field>
<field name="arch" type="xml">
<form string="Mailing">
<header style="min-height:31px;">
<button name="put_in_queue" type="object" attrs="{'invisible': [('state', 'in', ('in_queue', 'done'))]}" class="oe_highlight" string="Send Now"
confirm="This will send the email to all recipients. Do you still want to proceed ?"/>
<button name="action_schedule_date" type="object" attrs="{'invisible': [('state', 'in', ('in_queue', 'done'))]}" class="btn-secondary" string="Schedule"/>
<button name="action_test_mailing" type="object" class="btn-secondary" string="Test"/>
<button name="cancel_mass_mailing" type="object" attrs="{'invisible': [('state', '!=', 'in_queue')]}" class="btn-secondary" 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 bg-info oe_text_center" attrs="{'invisible': [('ignored', '=', 0)]}">
<p>
<button class="btn-link"
name="%(action_view_mail_mail_statistics_mailing_list)d"
type="action"
context="{'search_default_filter_ignored': True}">
<strong>
<field name="ignored" class="oe_inline"/>
email(s) have been ignored and will not be sent.
</strong>
</button>
</p>
</div>
<div class="oe_form_box_info bg-info oe_text_center" attrs="{'invisible': ['|', ('scheduled', '=', 0), ('ignored','!=',0)]}">
<p>
<button class="btn-link"
name="%(action_view_mail_mail_statistics_mailing_list)d"
type="action"
context="{'search_default_filter_scheduled': True}">
<strong>
<field name="scheduled" class="oe_inline"/>
email(s) are in queue and will be sent soon.
</strong>
</button>
</p>
</div>
<div class="oe_form_box_info bg-info oe_text_center alert-info" attrs="{'invisible': ['|', ('state', '!=', 'done'), ('failed', '=', 0)]}" role="alert">
<p>
<button class="btn-link"
name="%(action_view_mail_mail_statistics_mailing_list)d"
type="action"
context="{'search_default_filter_failed': True}">
<strong>
<field name="failed" class="oe_inline"/>
email(s) could not be sent.
</strong>
</button>
</p>
</div>
<div class="oe_form_box_info bg-info oe_text_center" attrs="{'invisible': [('state', '!=', 'in_queue')]}">
<p><strong>
This mailing is scheduled for
<field name="next_departure" class="oe_inline"/>.
</strong></p>
</div>
<sheet>
<widget name="web_ribbon" text="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<div class="oe_button_box" name="button_box">
<button name="action_view_sent"
type="object"
context="{'search_default_filter_sent': True}"
icon="fa-envelope-o" class="oe_stat_button o_mass_mailing_button"
attrs="{'invisible': ['&amp;', ('sent', '=', 0), ('state', 'in', ('draft','test'))]}" >
<field name="sent" string="Emails Sent" widget="statinfo"/>
</button>
<button name="action_view_delivered"
type="object"
context="{'search_default_filter_received': True}"
attrs="{'invisible': [('state', 'in', ('draft','test'))]}"
class="oe_stat_button">
<field name="received_ratio" string="Received" widget="percentpie"/>
</button>
<button name="action_view_opened"
type="object"
context="{'search_default_filter_opened': True}"
attrs="{'invisible': [('state', 'in', ('draft','test'))]}"
class="oe_stat_button">
<field name="opened_ratio" string="Opened" widget="percentpie"/>
</button>
<button name="action_view_replied"
type="object"
context="{'search_default_filter_replied': True}"
attrs="{'invisible': [('state', 'in', ('draft','test'))]}"
class="oe_stat_button">
<field name="replied_ratio" string="Replied" widget="percentpie"/>
</button>
<button name="action_view_clicked"
type="object"
attrs="{'invisible': [('state', 'in', ('draft','test'))]}"
class="oe_stat_button">
<field name="clicks_ratio" string="Clicks" widget="percentpie"/>
</button>
<button name="action_view_bounced"
type="object"
context="{'search_default_filter_bounced': True}"
attrs="{'invisible': [('state', 'in', ('draft','test'))]}"
class="oe_stat_button">
<field name="bounced_ratio" string="Bounced" widget="percentpie"/>
</button>
</div>
<group>
<field name="active" invisible="1"/>
<field name="name" required="1" string="Mailing Name"/>
<field name="subject" string="Subject"/>
<label for="mailing_model_id" string="Recipients"/>
<div>
<field name="mailing_model_id" widget="selection" required="1"/>
<field name="mailing_model_name" invisible="1"/>
<field name="mailing_model_real" invisible="1"/>
<field name="mailing_domain" widget="domain"
attrs="{'invisible': [('mailing_model_name', '=', 'mailing.list')]}"
options="{'model': 'mailing_model_real'}">
</field>
<div attrs="{'invisible': [('mailing_model_name', '!=', 'mailing.list')]}">
<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"/>
</div>
</div>
</group>
<notebook>
<page string="Mail Body">
<field name="body_html" class="oe_read_only" widget="html" options="{
'cssReadonly': 'mass_mailing.iframe_css_assets_readonly',
}"/>
<field name="body_arch" class="o_mail_body oe_edit_only" widget="mass_mailing_html" options="{
'snippets': 'mass_mailing.email_designer_snippets',
'cssEdit': 'mass_mailing.iframe_css_assets_edit',
'inline-field': 'body_html'
}"/>
</page>
<page string="Options">
<group>
<group string="Mailing">
<field name="user_id"/>
<field name="email_from"/>
<label for="reply_to"/>
<div>
<field name="reply_to_mode" widget="radio"
attrs="{'invisible': [('mailing_model_name', 'in', ['mailing.contact', 'res.partner', 'mailing.list'])]}"/>
<field name="reply_to"
attrs="{'required': [('reply_to_mode', '=', 'email')], 'invisible': [('reply_to_mode', '=', 'thread')]}"/>
</div>
<label for="attachment_ids"/>
<div>
<field name="attachment_ids" widget="many2many_binary" string="Attach a file" class="oe_inline"/>
</div>
<field name="mail_server_id" groups="base.group_no_one" options="{'no_create': True, 'no_open': True}"/>
<field name="schedule_date" groups='base.group_no_one'/>
<field name="keep_archives" groups="base.group_no_one"/>
<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="Marketing" groups="base.group_no_one,mass_mailing.group_mass_mailing_campaign">
<field name="mass_mailing_campaign_id"
string="Mailing Campaign"
groups="mass_mailing.group_mass_mailing_campaign"/>
<field name="campaign_id"
string="UTM Campaign"
groups="base.group_no_one"/>
<field name="source_id"
readonly="1"
string="Source"
required="False"
groups="base.group_no_one"/>
<field name="medium_id"
string="Medium"
groups="base.group_no_one"/>
<label for="contact_ab_pc" groups="mass_mailing.group_mass_mailing_campaign"/>
<div groups="mass_mailing.group_mass_mailing_campaign">
<field name="contact_ab_pc" class="oe_inline"/> %
</div>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record model="ir.ui.view" id="view_mail_mass_mailing_kanban">
<field name="name">mailing.mailing.kanban</field>
<field name="model">mailing.mailing</field>
<field name="arch" type="xml">
<kanban default_group_by="state">
<field name='state' readonly="1"/>
<field name='email_from' readonly="1"/>
<field name='color'/>
<field name='expected'/>
<field name='failed'/>
<field name='sent_date'/>
<field name='active'/>
<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 role="button" class="dropdown-toggle o-no-caret btn" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
<span class="fa fa-ellipsis-v"/>
</a>
<div class="dropdown-menu" role="menu">
<ul class="oe_kanban_colorpicker" data-field="color"/>
<t t-if="widget.deletable">
<a role="menuitem" type="delete" class="dropdown-item">Delete</a>
</t>
<a role="menuitem" class="dropdown-item o_kanban_mailing_active" name="toggle_active" type="object">
<t t-if="record.active.raw_value">Archive</t>
<t t-if="!record.active.raw_value">Restore</t>
</a>
</div>
</div>
<div class="oe_kanban_content">
<div class="o_kanban_record_top">
<div class="o_kanban_record_headings">
<h3 class="mt4 mb4"><field name="name"/></h3>
<div class="o_kanban_record_subtitle" attrs="{'invisible': [('sent_date', '=', False)]}">
<h5 style="display: inline;"><field name="mass_mailing_campaign_id" groups="mass_mailing.group_mass_mailing_campaign"/></h5>
<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>
<div class="o_kanban_record_body" attrs="{'invisible': [('sent_date', '=', False)]}">
<t t-if="record.sent_date">
<div class="row">
<div class="col-8">
<a name="%(action_view_mail_mail_statistics_mailing)d"
context="{'search_default_filter_opened': True}"
type="action">Opened</a>
</div>
<div class="col-4 text-right">
<field name="opened_ratio"/> %
</div>
</div>
<div class="row">
<div class="col-8">
<a name="%(action_view_mail_mail_statistics_mailing)d"
context="{'search_default_filter_replied': True}"
type="action">Replied</a>
</div>
<div class="col-4 text-right">
<field name="replied_ratio"/> %
</div>
</div>
<div class="row">
<div class="col-8">
<a name="%(link_tracker_action_mass_mailing)d"
type="action">Clicks</a>
</div>
<div class="col-4 text-right">
<field name="clicks_ratio"/> %
</div>
</div>
<div class='o_kanban_primary_bottom'>
<field name="delivered" widget="progressbar" title="Delivered" options="{'current_value': 'delivered', 'max_value': 'expected', '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">mailing.mailing.graph</field>
<field name="model">mailing.mailing</field>
<field name="arch" type="xml">
<graph string="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">Mailings</field>
<field name="res_model">mailing.mailing</field>
<field name="view_mode">kanban,tree,form,graph</field>
<field name="context">{
'search_default_assigned_to_me': 1,
'default_user_id': uid,
}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new mailing
</p><p>
You don't need to import your mailing lists, you can easily
send emails<br/> to any contact saved in other Odoo apps.
</p>
</field>
</record>
<record id="action_view_mass_mailings_from_campaign" model="ir.actions.act_window">
<field name="name">Mailings</field>
<field name="res_model">mailing.mailing</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{
'search_default_assigned_to_me': 1,
'search_default_mass_mailing_campaign_id': [active_id],
'default_mass_mailing_campaign_id': active_id,
'default_user_id': uid,
}
</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new mailing
</p><p>
You don't need to import your mailing lists, you can easily
send emails<br/> to any contact saved in other Odoo apps.
</p>
</field>
</record>
<record id="action_create_mass_mailings_from_campaign" model="ir.actions.act_window">
<field name="name">Mailings</field>
<field name="res_model">mailing.mailing</field>
<field name="view_mode">form,kanban,tree</field>
<field name="context">{
'search_default_assigned_to_me': 1,
'search_default_mass_mailing_campaign_id': [active_id],
'default_mass_mailing_campaign_id': active_id,
'default_user_id': uid,
}
</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new mailing
</p><p>
You don't need to import your mailing lists, you can easily
send emails<br/> to any contact saved in other Odoo apps.
</p>
</field>
</record>
<record id="action_create_ab_mass_mailings_from_campaign" model="ir.actions.act_window">
<field name="name">Mailings</field>
<field name="res_model">mailing.mailing</field>
<field name="view_mode">form,kanban,tree</field>
<field name="context">{
'search_default_assigned_to_me': 1,
'search_default_mass_mailing_campaign_id': [active_id],
'default_mass_mailing_campaign_id': active_id,
'default_contact_ab_pc': 10,
'default_user_id': uid,
}
</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new mailing
</p><p>
You don't need to import your mailing lists, you can easily
send emails<br/> to any contact saved in other Odoo apps.
</p>
</field>
</record>
<menuitem name="Mailings" id="mass_mailing_menu" parent="mass_mailing_menu_root"
sequence="1" action="action_view_mass_mailings" groups="mass_mailing.group_mass_mailing_user"/>
<!-- MAILING CAMPAIGN STAGE !-->
<record model="ir.ui.view" id="view_mail_mass_mailing_stage_search">
<field name="name">mailing.stage.search</field>
<field name="model">mailing.stage</field>
<field name="arch" type="xml">
<search string="Mailings">
<field name="name"/>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_mail_mass_mailing_stage_tree">
<field name="name">mailing.stage.tree</field>
<field name="model">mailing.stage</field>
<field name="priority">10</field>
<field name="arch" type="xml">
<tree string="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">Mailing Stages</field>
<field name="res_model">mailing.stage</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new mass mailing stage
</p>
</field>
</record>
<menuitem name="Campaign Stages" id="menu_view_mass_mailing_stages"
parent="mass_mailing_configuration" sequence="1"
groups="mass_mailing.group_mass_mailing_campaign"
action="action_view_mass_mailing_stages"/>
<!-- MAILING CAMPAIGN TAGS !-->
<record id="mail_mass_mailing_tag_view_form" model="ir.ui.view">
<field name="name">mailing.tag.form</field>
<field name="model">mailing.tag</field>
<field name="arch" type="xml">
<form string="Campaign Tags">
<sheet>
<group>
<field name="name"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="mass_mailing_tag_action" model="ir.actions.act_window">
<field name="name">Campaign Tags</field>
<field name="res_model">mailing.tag</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Add a new tag
</p>
</field>
</record>
<menuitem id="mass_mailing_tag_menu" parent="mass_mailing_configuration" action="mass_mailing_tag_action" sequence="2" groups="base.group_no_one"/>
<!-- 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="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="Mailing Campaigns">
<field name="name"/>
<field name="user_id"/>
<field name="stage_id"/>
<field name="tag_ids"/>
</tree>
</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="Mailing Campaign">
<header style="min-height:31px;">
<button name="%(action_create_mass_mailings_from_campaign)d" type="action" class="oe_highlight" string="Send new Mailing"/>
<button name="%(action_create_ab_mass_mailings_from_campaign)d" type="action" class="oe_highlight" string="Send new A/B Testing Mailing"/>
<span><field name="stage_id" widget="statusbar" options="{'clickable': '1'}"/></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="Delivered"/>
</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="%(link_tracker_action_mass_mailing_campaign)d"
type="action" class="oe_stat_button">
<field name="clicks_ratio" widget="percentpie" string="Clicks"/>
</button>
</div>
<group>
<field name="name" string="Campaign Name"/>
<field name="user_id"/>
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}"/>
<field name="unique_ab_testing" groups="base.group_no_one"/>
</group>
<notebook>
<page string="Tracking">
<group>
<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 js_class="mass_mailing_campaign_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 role="button" class="dropdown-toggle o-no-caret btn" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
<span class="fa fa-ellipsis-v"/>
</a>
<div class="dropdown-menu" role="menu">
<t t-if="widget.editable">
<a role="menuitem" type="edit" class="dropdown-item">Settings</a>
</t>
<t t-if="widget.deletable">
<a role="menuitem" type="delete" class="dropdown-item">Delete</a>
</t>
<div role="separator" class="dropdown-divider"/>
<div role="separator" class="dropdown-header">Colour</div>
<ul class="oe_kanban_colorpicker" data-field="color"/>
</div>
</div>
<div class="oe_kanban_content">
<div class="o_kanban_record_top mb16">
<div class="o_kanban_record_headings">
<h3 class="oe_margin_bottom_8 o_kanban_record_title"><field name="name"/></h3>
<a name="%(action_view_mass_mailings_from_campaign)d" type="action"
class="oe_mailings o_kanban_record_subtitle">
<t t-raw="record.mass_mailing_ids.raw_value.length"/> Mailings
</a>
</div>
</div>
<div class="o_kanban_record_body">
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/>
</div>
<div class="o_kanban_record_bottom mt16" style="height:90px">
<div class="oe_kanban_bottom_left" style="height:90px">
<field name="delivered" widget="gauge" options="{'max_field': 'total', 'style': 'width:120px; height: 90px;'}"/>
<div>
<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 class="oe_kanban_bottom_right" style="height:90px">
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value" width="30" height="30" class="oe_kanban_avatar"/>
</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">Mailing Campaigns</field>
<field name="res_model">mail.mass_mailing.campaign</field>
<field name="view_mode">kanban,tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new mailing campaign
</p><p>
Create a campaign to structure mailing and get analysis from email status.
</p>
</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"/>
</odoo>