mass_mailing/views/mailing_list_views.xml

276 lines
16 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- MAILING LIST -->
<record model="ir.ui.view" id="mailing_list_view_search">
<field name="name">mailing.list.view.search</field>
<field name="model">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 Period" name="group_create_date"
context="{'group_by': 'create_date'}"/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="mailing_list_view_tree">
<field name="name">mailing.list.view.tree</field>
<field name="model">mailing.list</field>
<field name="priority">10</field>
<field name="arch" type="xml">
<tree string="Mailing Lists" sample="1">
<field name="name"/>
<field name="is_public"/>
<field name="mailing_count" string="Mailings"/>
<field name="contact_pct_bounce" string="Bounce (%)"/>
<field name="contact_pct_opt_out" string="Opt-out (%)"/>
<field name="contact_pct_blacklisted" string="Blacklist (%s)"/>
<field name="contact_count" string="Recipients"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="mailing_list_view_form">
<field name="name">mailing.list.form</field>
<field name="model">mailing.list</field>
<field name="arch" type="xml">
<form string="Contact List">
<header>
<button name="action_send_mailing" string="Send Mailing"
type="object" class="btn btn-primary"/>
</header>
<sheet>
<div class="oe_button_box" name="button_box">
<button name="action_view_contacts"
type="object" icon="fa-user" class="oe_stat_button">
<field name="contact_count" string="Recipients" widget="statinfo"/>
</button>
<button name="action_view_mailings"
type="object" icon="fa-envelope-o" class="oe_stat_button">
<field name="mailing_count" string="Mailings" widget="statinfo"/>
</button>
<button name="action_view_contacts_bouncing"
type="object" icon="fa-exchange" class="oe_stat_button">
<field name="contact_pct_bounce" widget="statinfo" string="% Bounce"/>
</button>
<button name="action_view_contacts_opt_out"
type="object" icon="fa-bell-slash-o" class="oe_stat_button">
<field name="contact_pct_opt_out" widget="statinfo" string="% Opt-out"/>
</button>
<button name="action_view_contacts_blacklisted"
type="object" icon="fa-ban" class="oe_stat_button">
<field name="contact_pct_blacklisted" widget="statinfo" string="% Blacklist"/>
</button>
</div>
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" class="text-break" placeholder="e.g. Consumer Newsletter"/>
</h1>
</div>
<group>
<field name="active" invisible="1"/>
<field name="is_public"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="mailing_list_view_form_simplified" model="ir.ui.view">
<field name="name">mailing.list.form.simplified</field>
<field name="model">mailing.list</field>
<field name="priority" eval="25"/>
<field name="arch" type="xml">
<form string="Contact List">
<group>
<group>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" placeholder="e.g. Consumer Newsletter"/>
</h1>
</div>
</group>
</group>
<group>
<field name="is_public"/>
</group>
</form>
</field>
</record>
<record id="mailing_list_view_kanban" model="ir.ui.view">
<field name="name">mailing.list.view.kanban</field>
<field name="model">mailing.list</field>
<field name="arch" type="xml">
<kanban class="o_kanban_mobile o_kanban_mailing_list" sample="1">
<field name="name"/>
<field name="contact_count"/>
<field name="contact_count_email"/>
<field name="contact_count_opt_out"/>
<field name="contact_count_blacklisted"/>
<field name="contact_pct_bounce"/>
<field name="contact_pct_opt_out"/>
<field name="contact_pct_blacklisted"/>
<field name="active"/>
<templates>
<t t-name="kanban-box">
<!-- Card when the Kanban view is grouped -->
<div class="oe_kanban_global_click o_mailing_list_kanban_grouped">
<div class="oe_kanban_content d-flex flex-column h-100">
<h2 class="mb-3 o_text_overflow">
<field name="name"/>
</h2>
<div class="d-flex align-items-center">
<div class="me-3">
<button class="btn btn-primary" name="action_view_contacts" type="object">
<t t-esc="record.contact_count.value"/> <span>Contacts</span>
</button>
</div>
<div class="flex-grow-1 d-flex flex-column align-items-end o_mass_mailing_kanban_contact_links">
<a name="action_view_contacts_email" type="object">
<span>Valid Email Recipients</span>
<span t-esc="record.contact_count_email.value" class="ms-3"/>
</a>
</div>
</div>
<div class="flex-grow-1 d-flex align-items-end mt-4">
<div class="col-12">
<div class="row mt3">
<div class="col-3 border-end">
<a name="action_view_mailings" type="object" class="d-flex flex-column align-items-center">
<span><field name="mailing_count"/></span>
<span class="text-muted">Mailings</span>
</a>
</div>
<div class="col-3 border-end">
<a name="action_view_contacts_bouncing" type="object" class="d-flex flex-column align-items-center">
<span><field name="contact_pct_bounce"/>%</span>
<span class="text-muted">Bounce</span>
</a>
</div>
<div class="col-3 border-end">
<a name="action_view_contacts_opt_out" type="object" class="d-flex flex-column align-items-center">
<span><field name="contact_pct_opt_out"/>%</span>
<span class="text-muted">Opt-out</span>
</a>
</div>
<div class="col-3">
<a name="action_view_contacts_blacklisted" type="object" class="d-flex flex-column align-items-center">
<span><field name="contact_pct_blacklisted"/>%</span>
<span class="text-muted">Blacklist</span>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Card when the Kanban view is not grouped -->
<div class="oe_kanban_global_click o_mailing_list_kanban_ungrouped d-flex gap-1 flex-row justify-content-between align-items-center flex-wrap">
<div class="col-lg-3 col-sm-6 col-12 py-0 my-auto">
<div class="d-flex text-large">
<span class="d-inline-block text-truncate fw-normal text-large"
t-att-title="record.name.value">
<field name="name"/>
</span>
</div>
</div>
<div class="o_mailing_list_kanban_counts col-lg-1 col-6 my-auto d-flex">
<div class="d-flex flex-row justify-content-start justify-content-md-end">
<div class="my-auto p-0">
<button name="action_view_contacts" type="object"
class="o_mailing_list_kanban_button o_mailing_list_kanban_big_nb text-primary fw-bold">
<field name="contact_count"/>
</button>
</div>
<div class="my-auto px-0">
<button name="action_view_contacts" type="object"
class="o_mailing_list_kanban_button text-large text-start ms-2">
Total <br/>Contacts
</button>
</div>
</div>
</div>
<div class="o_mailing_list_kanban_stats order-4 order-lg-3 col-lg-5 col-sm-12 col-12 py-0 my-3 my-sm-auto d-flex justify-content-sm-between justify-content-start flex-wrap">
<a class="me-sm-0 me-3 text-large" tabindex="-1"
name="action_view_contacts_email" type="object">
<span class="fw-normal">
<field name="contact_count_email"/>
</span>
<br/>
<span class="text-muted">
<i class="fa fa-envelope-o"/> Contacts
</span>
</a>
<a class="me-sm-0 me-3 text-large" tabindex="-1"
name="action_view_mailings" type="object">
<span class="fw-normal">
<field name="mailing_count"/>
</span>
<br/>
<span class="text-muted">Mailings</span>
</a>
<hr class="w-100 d-block d-sm-none opacity-0 m-0 p-0"/>
<a class="me-sm-0 me-3 text-large" tabindex="-1"
name="action_view_contacts_bouncing" type="object">
<span class="fw-normal">
<field name="contact_pct_bounce"/> %
</span>
<br/>
<span class="text-muted">Bounce</span>
</a>
<a class="me-sm-0 me-3 text-large" tabindex="-1"
name="action_view_contacts_opt_out" type="object">
<span class="fw-normal">
<field name="contact_pct_opt_out"/> %
</span>
<br/>
<span class="text-muted">Opt-Out</span>
</a>
<a class="me-sm-0 me-3 text-large" tabindex="-1"
name="action_view_contacts_blacklisted" type="object">
<span class="fw-normal">
<field name="contact_pct_blacklisted"/> %
</span>
<br/>
<span class="text-muted">Blacklist</span>
</a>
</div>
<div class="o_kanban_ungrouped_action_buttons order-3 order-lg-4 col-5 col-lg-2 py-0 my-auto d-none d-md-flex flex-wrap justify-content-end gap-1">
<button name="action_open_import" string="Import Contacts"
type="object" class="btn btn-secondary text-nowrap">
Import Contacts
</button>
<button name="action_send_mailing" string="Send Mailing"
type="object" class="btn btn-secondary text-nowrap">
Send Mailing
</button>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record model="ir.actions.act_window" id="action_view_mass_mailing_lists">
<field name="name">Mailing Lists</field>
<field name="res_model">mailing.list</field>
<field name="view_mode">kanban,tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a Mailing List
</p><p>
No need to import mailing lists, you can send mailings to contacts saved in other Odoo apps.
</p>
</field>
</record>
</odoo>