<?xml version="1.0"?>
<form string="Mailing" class="o_mass_mailing_mailing_form">
                    <header style="min-height:31px;">
                        <button name="action_launch" type="object" class="oe_highlight" string="Send" attrs="{'invisible': [('state', 'in', ('in_queue',  'sending', 'done'))]}" data-hotkey="v" confirm="This will send the email to all recipients. Do you still want to proceed ?"/>
                        <button name="action_schedule" type="object" class="btn-secondary" string="Schedule" attrs="{'invisible': [('state', 'in', ('in_queue',  'sending', 'done'))]}" data-hotkey="x"/>
                        <button name="action_duplicate" type="object" class="btn-secondary" string="Duplicate" data-hotkey="d" attrs="{'invisible': [('state', '!=', 'done')]}"/>
                        <button name="action_test" type="object" class="btn-secondary" string="Test" data-hotkey="k"/>
                        <button name="action_cancel" type="object" attrs="{'invisible': [('state', '!=', 'in_queue')]}" class="btn-secondary" string="Cancel" data-hotkey="z"/>
                        <button name="action_retry_failed" type="object" attrs="{'invisible': ['|', ('state', '!=', 'done'), ('failed', '=', 0)]}" class="oe_highlight" string="Retry" data-hotkey="y"/>

                        <field name="state" readonly="1" widget="statusbar"/>
                    </header>
                    <div class="alert alert-info text-center" role="alert" attrs="{'invisible': ['&amp;','&amp;','&amp;','&amp;','&amp;',('state', '!=', 'in_queue'),('sent', '=', 0),('canceled', '=', 0),('scheduled', '=', 0),('failed', '=', 0),('warning_message', '=', False)]}">
                        <div class="o_mails_canceled" attrs="{'invisible': [('canceled', '=', 0)]}">
                            <button class="btn-link py-0" name="action_view_traces_canceled" type="object">
                                <strong>
                                    <field name="canceled" class="oe_inline me-2"/>
                                    <span name="canceled_text">emails have been canceled and will not be sent.</span>
                                </strong>
                            </button>
                        </div>
                        <div class="o_mails_scheduled" attrs="{'invisible': [('scheduled', '=', 0)]}">
                            <button class="btn-link py-0" name="action_view_traces_scheduled" type="object">
                                <strong>
                                    <field name="scheduled" class="oe_inline me-2"/>
                                    <span name="scheduled_text">emails are in queue and will be sent soon.</span>
                                </strong>
                            </button>
                        </div>
                        <div class="o_mails_sent" attrs="{'invisible': ['&amp;', ('sent', '=', 0), ('state', 'in', ('draft', 'test', 'in_queue'))]}">
                            <button class="btn-link py-0" name="action_view_traces_sent" type="object">
                                <strong>
                                    <field name="sent" class="oe_inline me-2"/>
                                    <span name="sent">emails have been sent.</span>
                                </strong>
                            </button>
                        </div>
                        <div class="o_mails_failed" attrs="{'invisible': ['|', ('state', '!=', 'done'), ('failed', '=', 0)]}">
                            <button class="btn-link py-0" name="action_view_traces_failed" type="object">
                                <strong>
                                    <field name="failed" class="oe_inline me-2"/>
                                    <span name="failed_text">emails could not be sent.</span>
                                </strong>
                            </button>
                        </div>
                        <div class="o_mails_in_queue" attrs="{'invisible': [('state', '!=', 'in_queue')]}">
                            <strong>
                                <span name="next_departure_text">This mailing is scheduled for </span>
                                <field name="next_departure" class="oe_inline"/>.
                            </strong>
                        </div>
                        <div attrs="{'invisible': [('warning_message', '=', False)]}">
                            <strong><field name="warning_message"/></strong>
                        </div>
                    </div>

                    <sheet>
                        <div class="oe_button_box" name="button_box">
                            <button name="action_view_delivered" id="button_view_delivered" type="object" context="{'search_default_filter_delivered': 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_clicked" type="object" context="{'search_default_filter_clicked': True}" attrs="{'invisible': [('state', 'in', ('draft','test'))]}" class="oe_stat_button">
                                <field name="clicks_ratio" string="Clicked" 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_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>
                        <widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
                        <group class="o_mass_mailing_mailing_group">
                            <field name="active" invisible="1"/>
                            <field name="create_uid" invisible="1"/>
                            <field name="mailing_type" widget="radio" options="{'horizontal': true}" invisible="1" attrs="{'readonly': [('state', '!=', 'draft')]}" force_save="1"/>
                            <label for="subject">Subject</label>
                            <div class="o_mass_mailing_subject d-flex flex-row align-items-baseline">
                                <field class="text-break" name="subject" string="Subject" options="{'dynamic_placeholder': true}" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}" widget="char_emojis" placeholder="e.g. New Sale on all T-shirts"/>
                                <field name="favorite" invisible="1"/>
                                <button type="object" name="action_set_favorite" class="o_mass_mailing_favorite p-0" icon="fa-star-o" attrs="{'invisible': [('favorite', '=', True)]}" title="Add to Templates"/>
                                <button type="object" name="action_remove_favorite" class="o_mass_mailing_favorite p-0" icon="fa-star" attrs="{'invisible': [('favorite', '=', False)]}" title="Remove from Templates"/>
                            </div>
                            <label for="mailing_model_id" string="Recipients"/>
                            <div name="mailing_model_id_container">
                                <div class="d-flex align-items-baseline flex-wrap">
                                    <div class="me-5">
                                        <field name="mailing_model_id" options="{'no_open': True, 'no_create': True}" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                    </div>
                                    <div attrs="{'invisible': [('mailing_model_name', '!=', 'mailing.list')]}" class="o_mass_mailing_contact_list_ids pt-1 pt-sm-0">
                                        <label for="contact_list_ids" string="Select mailing lists:" class="oe_edit_only pe-2"/>
                                        <div class="d-inline-flex flex-row align-items-center">
                                            <field name="contact_list_ids" widget="many2many_tags" placeholder="Select mailing lists..." class="oe_inline mb-0" context="{'form_view_ref': 'mass_mailing.mailing_list_view_form_simplified'}" attrs="{                                                     'required':[('mailing_model_name','=','mailing.list')],                                                     'readonly': [('state', 'in', ('sending', 'done'))]                                             }"/>
                                            <button icon="fa-user-plus" type="object" class="btn btn-secondary py-0 px-1 ms-1" attrs="{'invisible': ['|', '|', ('contact_list_ids', '=', False), ('contact_list_ids', '=', []), ('state', 'in', ('sending', 'done'))]}" name="action_view_mailing_contacts" title="Add Mailing Contacts"/>
                                        </div>
                                    </div>
                                    <div attrs="{'invisible': [('mailing_model_name', '=', 'mailing.list')]}" class="o_td_label">
                                        <!-- We don't want to display label in edit mode, unless mailing is in sending or done state (where filter will be readonly) -->
                                        <label for="mailing_filter_id" string="Filter" class="oe_read_only me-4" attrs="{'invisible': ['|', ('state', 'in', ('sending', 'done')), ('mailing_filter_id', '=', False)]}"/>
                                        <label for="mailing_filter_id" string="Filter" class="me-4" attrs="{'invisible': ['|', ('state', 'not in', ('sending', 'done')), ('mailing_filter_id', '=', False)]}"/>
                                        <field name="mailing_filter_id" placeholder="Reload a favorite filter" class="w-auto" widget="mailing_filter" options="{'no_create': 1, 'no_open': 1, 'domain_field': 'mailing_domain', 'model_field': 'mailing_model_id'}" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                    </div>
                                    <field name="mailing_filter_count" invisible="1"/>
                                    <field name="mailing_filter_domain" invisible="1"/>
                                </div>

                                <field name="mailing_model_name" invisible="1"/>
                                <field name="mailing_model_real" invisible="1"/>
                                <div class="w-lg-50" attrs="{'invisible': [('mailing_model_name', '=', 'mailing.list')]}">
                                    <field name="mailing_domain" widget="domain" options="{'model': 'mailing_model_real'}" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                </div>
                            </div>
                        </group>
                        <notebook>
                            <page string="Mail Body" name="mail_body">
                                <div class="position-relative">
                                    <div class="mt-n2">
                                        <field name="body_arch" class="o_mail_body" widget="mass_mailing_html" iframeHtmlClass="o_mass_mailing_iframe" options="{                                                 'snippets': 'mass_mailing.email_designer_snippets',                                                 'cssEdit': 'mass_mailing.iframe_css_assets_edit',                                                 'inline-field': 'body_html',                                                 'dynamic_placeholder': true,                                                 'cssReadonly': 'mass_mailing.iframe_css_assets_edit'                                         }" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                    </div>
                                    <field name="is_body_empty" invisible="1"/>
                                    <div class="o_view_nocontent oe_read_only" attrs="{'invisible': ['|', ('is_body_empty', '=', False), ('state', 'in', ('sending', 'done'))]}">
                                        <div class="o_nocontent_help">
                                            <p class="o_view_nocontent_smiling_face">
                                                This mailing has no selected design (yet!).
                                            </p>
                                        </div>
                                    </div>
                                </div>
                            </page>
                            <page string="A/B Tests" name="ab_testing">
                                <group>
                                    <group>
                                        <label for="ab_testing_enabled"/>
                                        <span class="d-flex">
                                            <field name="ab_testing_enabled" attrs="{'readonly': [('state', '!=', 'draft')]}" force_save="1"/>
                                            <span class="d-flex" attrs="{'invisible': [('ab_testing_enabled', '=', False)]}">
                                                on <field name="ab_testing_pc" class="mx-1 text-center" attrs="{'readonly': [('state', '!=', 'draft')]}"/> %
                                            </span>
                                        </span>
                                        <field name="ab_testing_winner_selection" attrs="{'required': [('ab_testing_enabled', '=', True), ('mailing_type', '=', 'mail')], 'invisible': ['|', ('ab_testing_enabled', '=', False), ('mailing_type', '!=', 'mail')], 'readonly': [('state', '!=', 'draft')]}"/>
                                        <field name="ab_testing_schedule_datetime" attrs="{'required': [('ab_testing_enabled', '=', True), ('ab_testing_winner_selection', '!=', 'manual')], 'readonly': ['|', ('ab_testing_enabled', '=', False), ('state', '!=', 'draft')], 'invisible': ['|', ('ab_testing_enabled', '=', False), ('ab_testing_winner_selection', '=', 'manual')]}"/>
                                    </group>
                                    <div>
                                        <field name="ab_testing_mailings_count" invisible="1"/>
                                        <field name="ab_testing_completed" invisible="1"/>
                                        <field name="ab_testing_description" nolabel="1"/>
                                        <div attrs="{'invisible': ['|', ('ab_testing_mailings_count', '&lt;', 2), ('ab_testing_enabled', '=', False)]}">
                                            <button name="action_compare_versions" type="object" class="btn btn-link d-block">
                                                <i class="fa fa-bar-chart"/> Compare Version
                                            </button>
                                            <button name="action_duplicate" type="object" class="btn btn-link d-block" attrs="{'invisible': [('ab_testing_completed', '=', True)]}">
                                                <i class="fa fa-copy"/> Create an Alternative
                                            </button>
                                            <button name="action_send_winner_mailing" type="object" class="btn btn-link d-block" attrs="{'invisible': [('ab_testing_completed', '=', True)]}">
                                                <i class="fa fa-envelope"/> <span name="ab_test_manual" attrs="{'invisible': [('ab_testing_winner_selection', '!=', 'manual')]}">
                                                    Send this version to remaining recipients
                                                </span> <span name="ab_test_auto" attrs="{'invisible': [('ab_testing_winner_selection', '=', 'manual')]}">
                                                    Send Winner Now
                                                </span>
                                            </button>
                                            <button name="action_select_as_winner" type="object" class="btn btn-link d-block" attrs="{'invisible': ['|', ('ab_testing_completed', '!=', False), ('ab_testing_winner_selection', '!=', 'manual')]}">
                                                <i class="fa fa-envelope"/> Send this as winner
                                            </button>
                                        </div>
                                        <button name="action_duplicate" type="object" class="btn btn-primary" attrs="{'invisible': ['|', ('ab_testing_mailings_count', '&gt;=', 2), ('ab_testing_enabled', '=', False)]}">
                                            Create an Alternative Version
                                        </button>
                                    </div>
                                </group>
                            </page>
                            <page string="Settings" name="settings">
                                <group>
                                    <group string="Email Content" name="email_content" attrs="{'invisible': [('mailing_type', '!=', 'mail')]}">
                                        <field class="o_text_overflow" name="preview" string="Preview Text" options="{'dynamic_placeholder': true}" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}" widget="char_emojis" placeholder="e.g. Check it out before it's too late!"/>
                                        <field name="email_from" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                        <label for="reply_to"/>
                                        <div name="reply_to_details">
                                            <field name="reply_to_mode" widget="radio" attrs="{                                                     'invisible': [('mailing_model_name', 'in', ['mailing.contact', 'res.partner', 'mailing.list'])],                                                     'readonly': [('state', 'in', ('sending', 'done'))]                                             }"/>
                                            <field name="reply_to" attrs="{                                                     'required': [('reply_to_mode', '=', 'new')],                                                     'invisible': [('reply_to_mode', '=', 'update')],                                                     'readonly': [('state', 'in', ('sending', 'done'))]                                             }"/>
                                            <div style="margin-top:-5px">
                                                <small class="oe_edit_only text-muted mb-2" style="font-size:74%" attrs="{'invisible': ['|', ('reply_to_mode', '=', 'update'), ('mailing_model_name', 'in', ['mailing.contact', 'res.partner', 'mailing.list'])],}">
                                                    To track replies, this address must belong to this database.
                                                </small>
                                            </div>
                                        </div>
                                        <label for="attachment_ids"/>
                                        <div name="attachment_ids_details">
                                            <field name="attachment_ids" widget="many2many_binary" string="Attach a file" class="oe_inline" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                        </div>
                                    </group>
                                    <group string="Tracking">
                                        <field name="campaign_id" string="Campaign" groups="mass_mailing.group_mass_mailing_campaign" options="{'create_name_field': 'title', 'always_reload': True}" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                        <field name="medium_id" string="Medium" required="True" groups="base.group_no_one" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                        <field name="source_id" string="Source" readonly="1" required="False" class="o_text_overflow" groups="base.group_no_one" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                        <field name="user_id" widget="many2one_avatar_user" domain="[('share', '=', False)]"/>
                                    </group>
                                    <group string="Advanced" groups="base.group_no_one">
                                        <field name="mail_server_available" invisible="1"/>
                                        <field name="name" required="False" string="Name" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                        <field name="mail_server_id" attrs="{'readonly': [('state', 'in', ('sending', 'done'))],                                          'invisible': [('mail_server_available', '=', False)]}"/>
                                        <field name="keep_archives" attrs="{'readonly': [('state', 'in', ('sending', 'done'))]}"/>
                                    </group>
                                </group>
                            </page>
                        </notebook>
                    </sheet>
                    <div class="oe_chatter">
                        <field name="message_follower_ids" groups="base.group_user"/>
                        <field name="message_ids"/>
                        <field name="activity_ids"/>
                    </div>
                </form>
            