<?xml version="1.0" encoding="utf-8"?>
<odoo>

        <!-- Marketing / Mailing -->
        <menuitem name="Email Marketing" id="mass_mailing_menu_root" sequence="60" web_icon="mass_mailing,static/description/icon.png"/>
        <menuitem name="Mailing Lists" id="mass_mailing_mailing_list_menu"
            parent="mass_mailing_menu_root" sequence="2" groups="mass_mailing.group_mass_mailing_user"/>
        <!-- Marketing / Configuration -->
        <menuitem name="Configuration" id="mass_mailing_configuration"
            parent="mass_mailing_menu_root" sequence="100"/>

        <!--  MAILING CONTACT -->
        <record model="ir.ui.view" id="mail_mass_mailing_list_contact_rel_view_form">
            <field name="name">mail.mass_mailing.list_contact_rel.view.form</field>
            <field name="model">mail.mass_mailing.list_contact_rel</field>
            <field name="priority">10</field>
            <field name="arch" type="xml">
                <form string="Mailing List contacts">
                    <sheet>
                        <group>
                            <field name="list_id"/>
                            <field name="is_blacklisted" invisible="1"/>
                            <label for="contact_id" class="oe_inline"/>
                            <div class="o_row o_row_readonly">
                                <i class="fa fa-ban" style="color: red;" role="img" title="This email is blacklisted for mass mailing"
                                    aria-label="Blacklisted" attrs="{'invisible': [('is_blacklisted', '=', False)]}" groups="base.group_user"></i>
                                <field name="contact_id"/>
                            </div>
                            <field name="unsubscription_date" readonly="1"/>
                            <field name="opt_out"/>
                            <field name="message_bounce" readonly="1"/>
                        </group>
                    </sheet>
                </form>
            </field>
        </record>

        <record model="ir.ui.view" id="mail_mass_mailing_list_contact_rel_list_contact_view_tree">
            <field name="name">mail.mass_mailing.list_contact_rel.list_contact.view.tree</field>
            <field name="model">mail.mass_mailing.list_contact_rel</field>
            <field name="arch" type="xml">
                <tree string="Mailing Lists">
                    <field name="contact_id"/>
                    <field name="unsubscription_date"/>
                    <field name="opt_out"/>
                    <field name="message_bounce"/>
                    <field name="is_blacklisted"/>
                    <button name="action_open_mailing_list_contact" string="Open Contact" type="object" icon="fa-user"/>
                </tree>
            </field>
        </record>

        <record model="ir.ui.view" id="mail_mass_mailing_list_contact_view_search">
            <field name="name">mail.mass_mailing.list_contact_rel.view.search</field>
            <field name="model">mail.mass_mailing.list_contact_rel</field>
            <field name="arch" type="xml">
               <search string="Mailing List Contacts">
                    <field name="contact_id"/>
                    <field name="opt_out"/>
                    <field name="list_id"/>
                    <separator/>
                    <filter string="Valid Recipients" name="valid_recipients" domain="[('opt_out', '=', False), ('contact_id.is_blacklisted', '=', False), ('contact_id.is_email_valid', '=', True)]"/>
                    <separator/>
                    <filter string="Exclude Opt Out" name="not_opt_out" domain="[('opt_out', '=', False)]"/>
                    <separator/>
                    <filter string="Exclude Blacklisted" name="not_blacklisted" domain="[('contact_id.is_blacklisted', '=', False)]"/>
                    <separator/>
                    <filter string="Exclude Invalid Emails" name="valid_email" domain="[('contact_id.is_email_valid', '=', True)]"/>
                    <separator/>
                    <filter string="Exclude Bounced" name="not_bounced" domain="[('message_bounce', '&lt;', 3)]"/>
                    <group expand="0" string="Group By">
                        <filter string="Creation Date" name="group_create_date"
                            context="{'group_by': 'create_date'}"/>
                    </group>
                </search>
            </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 List Contacts">
                    <field name="name" filter_domain="['|','|',('name','ilike',self),('company_name','ilike',self), ('email','ilike',self)]"
                        string="Name / Email"/>
                    <field name="tag_ids"/>
                    <field name="list_ids"/>
                    <separator/>
                    <filter string="Exclude Blacklisted" name="not_blacklisted" domain="[('is_blacklisted', '=', False)]"/>
                    <separator/>
                    <separator/>
                    <filter string="Exclude Bounced" name="not_bounced" domain="[('message_bounce', '&lt;', 3)]"/>
                    <group expand="0" string="Group By">
                        <filter string="Creation Date" name="group_create_date"
                            context="{'group_by': 'create_date'}"/>
                    </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 List Contacts">
                    <field name="create_date"/>
                    <field name="name"/>
                    <field name="company_name"/>
                    <field name="email"/>
                    <field name="message_bounce"/>
                    <field name="is_blacklisted"/>
                </tree>
            </field>
        </record>

        <record id="view_mail_mass_mailing_contact_kanban" model="ir.ui.view">
            <field name="name">mail.mass_mailing.contact.kanban</field>
            <field name="model">mail.mass_mailing.contact</field>
            <field name="arch" type="xml">
                <kanban>
                    <field name="name"/>
                    <field name="company_name"/>
                    <field name="email"/>
                    <field name="message_bounce"/>
                    <templates>
                        <t t-name="kanban-box">
                            <div t-attf-class="oe_kanban_global_click">
                                <div class="o_kanban_record_top">
                                    <div class="o_kanban_record_headings">
                                        <strong class="o_kanban_record_title">
                                            <t t-esc="record.name.value"/>
                                        </strong>
                                    </div>
                                    <span class="badge badge-pill" title="Number of bounced email.">
                                        <i class="fa fa-exclamation-triangle" role="img" aria-label="Warning" title="Warning"/> <t t-esc="record.message_bounce.value" title=""/>
                                    </span>
                                </div>
                                <div class="o_kanban_record_body">
                                    <field name="tag_ids"/>
                                </div>
                                <div class="o_kanban_record_bottom">
                                    <div class="oe_kanban_bottom_left">
                                        <strong>
                                            <t t-esc="record.email.value"/>
                                        </strong>
                                    </div>
                                    <div class="oe_kanban_bottom_right">
                                        <t t-esc="record.company_name.value"/>
                                    </div>
                                </div>
                            </div>
                        </t>
                    </templates>
                </kanban>
            </field>
        </record>

        <record model="ir.ui.view" id="view_mail_mass_mailing_contact_form">
            <field name="name">mail.mass_mailing.contact.form</field>
            <field name="model">mail.mass_mailing.contact</field>
            <field name="priority">10</field>
            <field name="arch" type="xml">
                <form string="Mailing List Contacts">
                    <sheet>
                        <div class="oe_title">
                            <label for="name" class="oe_edit_only"/>
                            <h1>
                                <field name="name" placeholder="e.g. John Smith"/>
                            </h1>
                            <label for="tag_ids" class="oe_edit_only"/>
                            <div>
                                <field name="tag_ids" widget="many2many_tags" style="width: 100%%"/>
                            </div>
                        </div>
                        <group>
                            <group>
                                <field name="is_blacklisted" invisible="1"/>
                                <label for="email" class="oe_inline"/>
                                <div class="o_row o_row_readonly">
                                    <i class="fa fa-ban" style="color: red;" role="img" title="This email is blacklisted for mass mailing"
                                        aria-label="Blacklisted" attrs="{'invisible': [('is_blacklisted', '=', False)]}" groups="base.group_user"></i>
                                    <field name="email" widget="email"/>
                                </div>
                                <field name="title_id"/>
                                <field name="company_name"/>
                                <field name="country_id"/>
                            </group>
                            <group>
                                <field name="create_date" readonly="1"/>
                                <label for="message_bounce"/>
                                <div class="o_row">
                                    <field name="message_bounce"/>
                                    <span> times</span>
                                </div>
                            </group>
                        </group>
                        <field name="subscription_list_ids">
                            <tree editable="bottom">
                               <field name="list_id"/>
                               <field name="unsubscription_date"/>
                               <field name="opt_out"/>
                            </tree>
                        </field>
                    </sheet>
                    <div class="oe_chatter">
                        <field name="message_follower_ids" widget="mail_followers"/>
                        <field name="message_ids" widget="mail_thread"/>
                    </div>
                </form>
            </field>
        </record>

        <record model="ir.ui.view" id="view_mail_mass_mailing_contact_pivot">
            <field name="name">mail.mass_mailing.contact.pivot</field>
            <field name="model">mail.mass_mailing.contact</field>
            <field name="priority">10</field>
            <field name="arch" type="xml">
                <pivot string="Mailing List Contacts" stacked="True">
                    <field name="create_date" type="row"/>
                </pivot>
            </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 List Contacts" stacked="True">
                    <field name="create_date" type="row"/>
                </graph>
            </field>
        </record>

        <record model="ir.actions.act_window" id="action_view_mass_mailing_contacts">
            <field name="name">Mailing List Contacts</field>
            <field name="res_model">mail.mass_mailing.contact</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,kanban,form,graph,pivot</field>
            <field name="context">{'search_default_not_blacklisted': 1}</field>
            <field name="help" type="html">
              <p class="o_view_nocontent_smiling_face">
                Create a contact in your address book
              </p><p>
                Odoo helps you to easily track all activities related to a customer.
              </p>
            </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.list_contact_rel</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form,graph</field>
            <field name="domain">[('list_id', 'in', [active_id])]</field>
            <field name="context">{'search_default_valid_recipients': 1, 'default_list_id': active_id}</field>
            <field name="help" type="html">
              <p class="o_view_nocontent_smiling_face">
                Create a new recipient
              </p>
            </field>
        </record>

        <menuitem name="Mailing List Contacts" id="menu_email_mass_mailing_contacts"
            parent="mass_mailing_mailing_list_menu" sequence="4"
            action="action_view_mass_mailing_contacts"/>

        <!--  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"/>
                    <field name="is_public"/>
                    <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="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="is_public"/>
                    <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="%(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>
                            <button name="toggle_active" type="object"
                                    class="oe_stat_button" icon="fa-archive">
                                <field name="active" widget="boolean_button"
                                    options='{"terminology": "archive"}'/>
                            </button>
                        </div>
                        <div class="oe_title">
                            <label for="name" class="oe_edit_only"/>
                            <h1>
                                <field name="name" placeholder="e.g. Consumer Newsletter"/>
                            </h1>
                        </div>
                        <group>
                            <field name="is_public"/>
                        </group>
                    </sheet>
                </form>
            </field>
        </record>

        <record id="view_mail_mass_mailing_list_form_simplified" model="ir.ui.view">
            <field name="name">mail.mass_mailing.list.form.simplified</field>
            <field name="model">mail.mass_mailing.list</field>
            <field name="arch" type="xml">
                <form string="Contact List">
                    <group>
                        <group>
                            <div class="oe_title">
                                <label for="name" class="oe_edit_only"/>
                                <h1>
                                    <field name="name" placeholder="e.g. Consumer Newsletter"/>
                                </h1>
                            </div>
                        </group>
                    </group>
                    <group>
                        <field name="is_public"/>
                    </group>
                    <footer>
                        <button string="Create" name="close_dialog" type="object" class="btn-primary"/>
                        <button string="Discard" class="btn-secondary" special="cancel"/>
                    </footer>
                </form>
            </field>
        </record>

        <record id="open_create_mass_mailing_list" model="ir.actions.act_window">
            <field name="name">Create a Mass Mailing List</field>
            <field name="res_model">mail.mass_mailing.list</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="view_id" ref="view_mail_mass_mailing_list_form_simplified"/>
            <field name="target">new</field>
        </record>

        <record id="view_mail_mass_mailing_list_kanban" model="ir.ui.view">
            <field name="name">mail.mass_mailing.list.kanban</field>
            <field name="model">mail.mass_mailing.list</field>
            <field name="arch" type="xml">
                <kanban class="o_kanban_mobile" on_create="mass_mailing.open_create_mass_mailing_list">
                    <field name="name"/>
                    <field name="contact_nbr"/>
                    <templates>
                        <t t-name="kanban-box">
                            <div t-attf-class="oe_kanban_global_click">
                                <div class="o_mass_mailing_kanban_main">
                                    <div class="o_kanban_card_content">
                                        <div class="o_kanban_primary_left">
                                            <div class="o_primary">
                                                <span><t t-esc="record.name.value"/></span>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="o_kanban_card_manage_pane">
                                        <div class="o_kanban_card_manage_section 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">
                                                <a t-if="widget.editable" role="menuitem" type="edit" class="dropdown-item">Edit</a>
                                                <a t-if="widget.deletable" role="menuitem" type="delete" class="dropdown-item">Delete</a>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div class="o_mailing_list_kanban_boxes">
                                    <a class="o_project_kanban_box" name="%(action_view_mass_mailing_contacts_from_list)d" type="action">
                                        <div>
                                            <span class="badge badge-pill">
                                                <i class="fa fa-user" role="img" aria-label="Contacts" title="Contacts"/>
                                                <t t-esc="record.contact_nbr.value"/>
                                            </span>
                                        </div>
                                    </a>
                                </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">mail.mass_mailing.list</field>
            <field name="view_type">form</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 list
              </p><p>
                No need of importing your mailing lists, you can easily
                send emails to any contact saved in other Odoo apps.
              </p>
            </field>
        </record>

        <menuitem name="Mailing Lists" id="menu_email_mass_mailing_lists"
            parent="mass_mailing_mailing_list_menu" sequence="3"
            action="action_view_mass_mailing_lists"/>

        <!--  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="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">mail.mass_mailing.tree</field>
            <field name="model">mail.mass_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">mail.mass_mailing.form</field>
            <field name="model">mail.mass_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>
                        <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>
                            <button name="toggle_active" type="object"
                                    attrs="{'invisible': [('state', 'in', ('draft','test'))]}"
                                    class="oe_stat_button" icon="fa-archive">
                                <field name="active" widget="boolean_button"
                                    options='{"terminology": "archive"}'/>
                            </button>
                        </div>

                        <group>
                            <label for="name" string="Subject"/>
                            <div>
                                <field name="name" nolabel="1"/>
                            </div>
                            <label for="mailing_model_id" string="Recipients"/>
                            <div>
                                <field name="mailing_model_id" widget="selection"/>
                                <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', '=', 'mail.mass_mailing.list')]}"
                                    options="{'model': 'mailing_model_real'}">
                                </field>
                                <div attrs="{'invisible': [('mailing_model_name', '!=', 'mail.mass_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="o_mail_body" widget="html_frame" options="{'editor_url': '/mass_mailing/field/email_template'}"/>
                            </page>
                            <page string="Options">
                                <group>
                                    <group string="Mailing">
                                        <field name="email_from"/>
                                        <label for="reply_to"/>
                                        <div>
                                            <field name="reply_to_mode" widget="radio"
                                                attrs="{'invisible': [('mailing_model_name', 'in', ['mail.mass_mailing.contact', 'res.partner', 'mail.mass_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="Campaign" groups="base.group_no_one,mass_mailing.group_mass_mailing_campaign">
                                        <field name="mass_mailing_campaign_id"
                                            string="Campaign"
                                            groups="mass_mailing.group_mass_mailing_campaign"/>
                                        <field name="campaign_id" invisible="1"
                                            groups="base.group_no_one"/>
                                        <field name="source_id"
                                            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">mail.mass_mailing.kanban</field>
            <field name="model">mail.mass_mailing</field>
            <field name="arch" type="xml">
                <kanban>
                    <field name='color'/>
                    <field name='expected'/>
                    <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 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>
                                    </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="%(action_view_mass_mailing_links_statistics)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">mail.mass_mailing.graph</field>
            <field name="model">mail.mass_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">mail.mass_mailing</field>
            <field name="view_type">form</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>
                No need of importing your mailing lists, you can easily
                send emails 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">mail.mass_mailing</field>
            <field name="view_type">form</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>
                No need of importing your mailing lists, you can easily
                send emails 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">mail.mass_mailing</field>
            <field name="view_type">form</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>
                No need of importing your mailing lists, you can easily
                send emails 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">mail.mass_mailing</field>
            <field name="view_type">form</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>
                No need of importing your mailing lists, you can easily
                send emails 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">mail.mass_mailing.stage.search</field>
            <field name="model">mail.mass_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">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="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">mail.mass_mailing.stage</field>
            <field name="view_type">form</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 id="menu_mass_mailing_configuration" name="Configuration" parent="mass_mailing_menu_root"
            sequence="100" groups="mass_mailing.group_mass_mailing_user"/>

        <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"/>

        <!--  MAILING CAMPAIGN TAGS !-->
        <record id="mail_mass_mailing_tag_view_form" model="ir.ui.view">
            <field name="name">mail.mass_mailing.tag.form</field>
            <field name="model">mail.mass_mailing.tag</field>
            <field name="arch" type="xml">
                <form string="Campaign Tags">
                    <group>
                        <field name="name"/>
                    </group>
                </form>
            </field>
        </record>
        <record id="mass_mailing_tag_action" model="ir.actions.act_window">
            <field name="name">Campaign Tags</field>
            <field name="res_model">mail.mass_mailing.tag</field>
            <field name="view_type">form</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="menu_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="%(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"/>
                            <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 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_type">form</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>
