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

        <!-- ir.actions -->

        <record id="action_view" model="ir.ui.view">
            <field name="name">ir.actions.actions</field>
            <field name="model">ir.actions.actions</field>
            <field name="arch" type="xml">
                <form string="Action">
                <sheet>
                    <group>
                        <field name="name"/>
                        <field name="type"/>
                    </group>
                </sheet>
                </form>
            </field>
        </record>
        <record id="action_view_tree" model="ir.ui.view">
            <field name="name">ir.actions.actions.list</field>
            <field name="model">ir.actions.actions</field>
            <field name="arch" type="xml">
                <list string="Action">
                    <field name="name"/>
                    <field name="type"/>
                </list>
            </field>
        </record>
        <record id="action_view_search" model="ir.ui.view">
            <field name="name">ir.actions.actions.search</field>
            <field name="model">ir.actions.actions</field>
            <field name="arch" type="xml">
                <search string="Action">
                    <field name="name" filter_domain="['|', ('name','ilike',self), ('type','ilike',self)]" string="Action"/>
                    <group>
                        <filter string="Action Type" name="type" context="{'group_by':'type'}"/>
                        <filter string="Binding Type" name="binding_type" context="{'group_by':'binding_type'}"/>
                        <filter string="Binding Model" name="binding_model_id" context="{'group_by':'binding_model_id'}"/>
                    </group>
                </search>
            </field>
        </record>
        <record id="ir_sequence_actions" model="ir.actions.act_window">
            <field name="name">Actions</field>
            <field name="res_model">ir.actions.actions</field>
            <field name="view_id" ref="action_view_tree"/>
            <field name="search_view_id" ref="action_view_search"/>
        </record>
        <menuitem id="next_id_6" name="Actions" parent="base.menu_custom" sequence="5"/>
        <menuitem action="ir_sequence_actions" id="menu_ir_sequence_actions" parent="next_id_6"/>

        <!-- ir.actions.report -->

        <record id="act_report_xml_view" model="ir.ui.view">
            <field name="name">ir.actions.report</field>
            <field name="model">ir.actions.report</field>
            <field name="arch" type="xml">
                <form string="Report">
                    <sheet>
                        <div class="oe_button_box" name="button_box">
                            <button name="create_action" type="object"
                                    invisible="binding_model_id" icon="fa-plus-square"
                                    help="Display an option on related documents to print this report" class="oe_stat_button">
                                    <div class="o_field_widget o_stat_info">
                                        <span class="o_stat_text">Add to the 'Print' menu</span>
                                    </div>
                            </button>
                            <button name="unlink_action" type="object"
                                    invisible="not binding_model_id" icon="fa-minus-square"
                                    help="Remove the contextual action related to this report" class="oe_stat_button">
                                    <div class="o_field_widget o_stat_info">
                                        <span class="o_stat_text">Remove from the 'Print' menu</span>
                                    </div>
                            </button>
                            <button name="associated_view" type="object"
                                    invisible="report_type not in ['qweb-pdf', 'qweb-html', 'qweb-text']" icon='fa-code'
                                    class="oe_stat_button">
                                    <div class="o_field_widget o_stat_info">
                                        <span class="o_stat_text">Qweb Views</span>
                                    </div>
                            </button>
                        </div>
                        <group>
                            <group>
                                <field name="name"/>
                                <field name="report_type"/>
                                <field name="paperformat_id"
                                       invisible="report_type != 'qweb-pdf'"/>
                            </group>
                            <group>
                                <field name="model"/>
                                <field name="report_name"/>
                                <field name="print_report_name" />
                            </group>
                        </group>
                        <notebook>
                            <page name="security" string="Visibility">
                                <field name="group_ids"/>
                            </page>
                            <page name='advanced' string="Advanced Properties">
                                <group>
                                    <field name="attachment_use"/>
                                    <field name="attachment"/>
                                </group>
                            </page>
                        </notebook>
                    </sheet>
                </form>
            </field>
        </record>
        <record id="act_report_xml_view_tree" model="ir.ui.view">
            <field name="name">ir.actions.report.list</field>
            <field name="model">ir.actions.report</field>
            <field name="arch" type="xml">
                <list string="Report xml">
                    <field name="name"/>
                    <field name="model"/>
                    <field name="type"/>
                    <field name="report_name"/>
                    <field name="report_type"/>
                    <field name="attachment"/>
                </list>
            </field>
        </record>
        <record id="act_report_xml_search_view" model="ir.ui.view">
            <field name="name">ir.actions.report.search</field>
            <field name="model">ir.actions.report</field>
            <field name="arch" type="xml">
                <search string="Report Xml">
                    <field name="name"
                        filter_domain="['|', '|', '|', '|', ('name','ilike',self), ('model','ilike',self), ('type','ilike',self), ('report_name','ilike',self), ('report_type','ilike',self)]"
                        string="Report"/>
                    <field name="model" filter_domain="[('model','=', self)]" string="Model"/>
                    <group colspan="4">
                        <filter string="Report Type" name="report_type" domain="[]" context="{'group_by':'report_type'}"/>
                        <filter string="Report Model" name="report_model" domain="[]" context="{'group_by':'model'}"/>
                    </group>
                </search>
            </field>
        </record>
        <record id="ir_action_report" model="ir.actions.act_window">
            <field name="name">Reports</field>
            <field name="res_model">ir.actions.report</field>
            <field name="view_id" ref="act_report_xml_view_tree"/>
            <field name="search_view_id" ref="act_report_xml_search_view"/>
        </record>
        <menuitem action="ir_action_report" id="menu_ir_action_report" parent="base.next_id_6"/>

        <!-- ir.actions.client -->

        <record id="view_client_action_form" model="ir.ui.view">
            <field name="name">ir.actions.client.form</field>
            <field name="model">ir.actions.client</field>
            <field name="arch" type="xml">
                <form string="Client Action">
                    <sheet>
                        <group>
                            <group name="main_details">
                                <field name="name"/>
                                <field name="xml_id" string="External ID"/>
                                <field name="binding_type"/>
                                <field name="tag"/>
                            </group>
                            <group name="action_details">
                                <field name="type" readonly="1"/>
                                <field name="target"/>
                                <field name="context"/>
                            </group>
                        </group>
                        <group name="help" string="Help">
                            <field name="help" nolabel="1" class="oe-bordered-editor"/>
                        </group>
                    </sheet>
                </form>
            </field>
        </record>

        <!-- ir.actions.act_window -->

        <record id="view_window_action_tree" model="ir.ui.view">
            <field name="name">ir.actions.windows.list</field>
            <field name="model">ir.actions.act_window</field>
            <field name="arch" type="xml">
                <list string="Open Window">
                    <field name="name"/>
                    <field name="res_model"/>
                    <field name="view_id"/>
                    <field name="domain"/>
                    <field name="context"/>
                </list>
            </field>
        </record>
        <record id="view_window_action_form" model="ir.ui.view">
            <field name="name">ir.actions.windows.form</field>
            <field name="model">ir.actions.act_window</field>
            <field name="arch" type="xml">
                <form string="Open a Window">
                <sheet>
                    <group>
                        <group name="main_details">
                            <field name="name"/>
                            <field name="xml_id" string="External ID"/>
                            <field name="path" string="Path"/>
                            <field name="res_model" string="Object"/>
                        </group>
                        <group name="action_details">
                            <field name="usage"/>
                            <field name="type" readonly="1"/>
                            <field name="target"/>
                            <field name="cache"/>
                        </group>
                    </group>
                    <notebook>
                        <page name="general_settings" string="General Settings">
                            <group>
                                <group name="views" string="Views">
                                    <field name="view_mode"/>
                                    <field name="mobile_view_mode"/>
                                    <field name="view_id"/>
                                    <field name="search_view_id"/>
                                </group>
                                <group name="filters" string="Filters">
                                    <field name="domain"/>
                                    <field name="context"/>
                                    <field name="limit"/>
                                    <field name="filter"/>
                                </group>
                            </group>
                            <group name="help" string="Help">
                                <field colspan="2" name="help" options="{'codeview': true}" nolabel="1" class="oe-bordered-editor"/>
                            </group>
                            <group name="views_tree" string="Views">
                                <field colspan="2" name="view_ids" nolabel="1">
                                    <form string="Views">
                                        <group>
                                            <field name="sequence"/>
                                            <field name="view_mode"/>
                                            <field domain="[('type', '=', view_mode)]" name="view_id"/>
                                        </group>
                                    </form>
                                    <list string="Views">
                                        <field name="sequence" widget="handle"/>
                                        <field name="view_mode"/>
                                        <field name="view_id"/>
                                    </list>
                                </field>
                            </group>
                        </page>
                        <page string="Visibility" name="security">
                            <field name="group_ids"/>
                        </page>
                    </notebook>
                </sheet>
                </form>
            </field>
        </record>
        <record id="view_window_action_search" model="ir.ui.view">
            <field name="name">ir.actions.windows.search</field>
            <field name="model">ir.actions.act_window</field>
            <field name="arch" type="xml">
                <search string="Open a Window">
                    <field name="name" filter_domain="['|', ('name','ilike',self), ('res_model','ilike',self)]" string="Action"/>
                    <group>
                        <filter string="Binding Model" name="binding_model_id" context="{'group_by':'binding_model_id'}"/>
                        <filter string="Target Window" name="target" context="{'group_by':'target'}"/>
                    </group>
                </search>
            </field>
        </record>
        <record id="ir_action_window" model="ir.actions.act_window">
            <field name="name">Window Actions</field>
            <field name="res_model">ir.actions.act_window</field>
            <field name="search_view_id" ref="view_window_action_search"/>
        </record>
        <record id="ir_action_window_view1" model="ir.actions.act_window.view">
            <field eval="1" name="sequence"/>
            <field name="view_mode">list</field>
            <field name="view_id" ref="view_window_action_tree"/>
            <field name="act_window_id" ref="ir_action_window"/>
        </record>
        <record id="ir_action_window_view2" model="ir.actions.act_window.view">
            <field eval="2" name="sequence"/>
            <field name="view_mode">form</field>
            <field name="view_id" ref="view_window_action_form"/>
            <field name="act_window_id" ref="ir_action_window"/>
        </record>
        <menuitem action="ir_action_window" id="menu_ir_action_window" parent="base.next_id_6"/>

        <record id="view_client_action_tree" model="ir.ui.view">
            <field name="name">Client Actions</field>
            <field name="model">ir.actions.client</field>
            <field name="arch" type="xml">
                <list string="Client Actions">
                    <field name="name"/>
                    <field name="tag"/>
                </list>
            </field>
        </record>

        <record id="ir_client_actions_report" model="ir.actions.act_window">
            <field name="name">Client Actions</field>
            <field name="res_model">ir.actions.client</field>
            <field name="view_id" ref="view_client_action_tree"/>
        </record>
        <menuitem action="ir_client_actions_report" id="menu_ir_client_actions_report" parent="base.next_id_6"/>

        <!-- ir.actions.server -->

        <record id="server_action_history_wizard_view" model="ir.ui.view">
            <field name="name">Server Action History Wizard</field>
            <field name="model">server.action.history.wizard</field>
            <field name="arch" type="xml">
                <form>
                    <group>
                        <group>
                            <field name="revision" required="1" widget="selection"/>
                        </group>
                    </group>
                    <field name="code_diff" invisible="not code_diff"/>
                    <div class="alert alert-warning my-2" role="alert" invisible="code_diff">
                        <span>No diff available</span>
                    </div>
                    <footer>
                        <button string="Restore Revision" name="restore_revision" type="object" class="btn-primary" invisible="not code_diff" data-hotkey="q"/>
                        <button string="Cancel" class="btn-secondary" special="cancel" data-hotkey="x" />
                    </footer>
                </form>
            </field>
        </record>

        <record id="view_server_action_form" model="ir.ui.view">
            <field name="name">Server Action</field>
            <field name="model">ir.actions.server</field>
            <field name="arch" type="xml">
                <form string="Server Action">
                    <header invisible="context.get('is_modal')">
                        <button name="create_action" string="Create Contextual Action" type="object"
                                class="btn-primary"
                                invisible="binding_model_id"
                                help="Display an option in the 'More' top-menu in order to run this action."/>
                        <button name="unlink_action" string="Remove Contextual Action" type="object"
                                invisible="not binding_model_id"
                                help="Remove 'More' top-menu contextual action related to this action"/>
                        <button name="run" string="Run" type="object"
                                class="btn-primary"
                                invisible="model_name != 'ir.actions.server' or state != 'code'"
                                help="Run this action manually."/>
                        <button name="history_wizard_action" string="Code History" type="object"
                                invisible="not show_code_history"
                                help="View code history and restore a previous version"/>
                    </header>
                    <sheet>
                        <div class="oe_button_box" name="button_box">
                            <button
                                type="object"
                                name="action_open_parent_action"
                                invisible="not parent_id"
                                class="oe_stat_button"
                                icon="fa-database"
                            >
                                <div class="o_stat_info">
                                    <span class="o_stat_text">Parent Action</span>
                                </div>
                            </button>
                            <button
                                type="object"
                                name="action_open_scheduled_action"
                                invisible="not ir_cron_ids or context.key != 'server_action'"
                                context="{'key': 'ir_cron'}"
                                class="oe_stat_button"
                                icon="fa-refresh"
                            >
                                <div class="o_stat_info">
                                    <span class="o_stat_text">Scheduled Action</span>
                                </div>
                            </button>
                        </div>
                        <h1 class="oe_title">
                            <field name="automated_name" invisible="1"/> <!-- needed for name compute -->
                            <field name="name" placeholder="Set an explicit name"/>
                        </h1>
                        <group invisible="context.get('is_modal')">
                            <group>
                                <field name="model_id" options="{'no_create': True, 'no_open': True}" groups="base.group_no_one" />
                                <field name="model_id" options="{'no_create': True, 'no_open': True}" groups="!base.group_no_one"
                                       invisible="context.get('default_model_id')"
                                       domain="[('id', 'in', available_model_ids)]"/>
                            </group>
                            <group groups="base.group_no_one">
                                <field name="group_ids" widget="many2many_tags" />
                            </group>
                        </group>
                        <t name="action_content" invisible="not model_id">
                            <field name="allowed_states" invisible="1"/> <!-- Used to filter state using selection_badge_with_filter -->
                            <div class="d-flex flex-column">
                                <label for="state"/>
                                <field name="state" widget="selection_badge_with_filter" options="{'size': 'sm', 'allowed_selection_field': 'allowed_states'}"/>
                            </div>
                            <div class="alert alert-warning" role="alert" invisible="not warning">
                                <i class="fa fa-warning pe-2" title="Warning"/><field class="d-inline" name="warning" nolabel="1"/>
                            </div>
                            <div class="d-flex flex-row flex-wrap gap-2" invisible="state != 'object_write'">
                                <field name="evaluation_type" class="oe_inline"/>
                                <field name="update_path" widget="field_selector" class="oe_inline" options="{'model': 'model_name', 'allow_properties': False}" required="state == 'object_write'"/>
                                <field name="update_field_id" invisible="True"/>  <!-- The field is store=True and readonly=False, in this view we want to save the value from compute/onchange -->
                                <field name="update_related_model_id" invisible="True"/> <!-- This field is required for 'resource_ref' to compute possible m2m and m2o values -->
                                <span invisible="evaluation_type != 'value' or update_field_type not in ['one2many', 'many2many']">by</span>
                                <field name="update_m2m_operation" class="oe_inline" invisible="evaluation_type != 'value' or update_field_type not in ['one2many', 'many2many']" required="update_field_type in ['one2many', 'many2many']"/>
                                <span invisible="evaluation_type != 'value' or update_field_type in ['one2many', 'many2many']">to</span>
                                <span invisible="evaluation_type != 'sequence'">with</span>
                                <field name="value" class="oe_inline" placeholder="Set a value..." invisible="update_field_id == False or value_field_to_show != 'value' or evaluation_type != 'value'" string="Custom Value"/>
                                <field name="html_value" class="w-100" placeholder="Set a value..." invisible="update_field_id == False or value_field_to_show != 'html_value' or evaluation_type != 'value'" string="Custom Value"/>
                                <field name="sequence_id" class="oe_inline" placeholder="Select a sequence..." invisible="evaluation_type != 'sequence'" required="evaluation_type == 'sequence'"/>
                                <field name="resource_ref" class="oe_inline" placeholder="Choose a value..." string="Custom Value" options="{'model_field': 'update_related_model_id', 'no_create': True, 'no_open': True}" invisible="update_field_id == False or value_field_to_show != 'resource_ref' or evaluation_type == 'equation' or update_m2m_operation == 'clear'"/>
                                <field name="selection_value" class="oe_inline" placeholder="Choose a value..." options="{'no_create': True, 'no_open': True}" invisible="update_field_id == False or value_field_to_show != 'selection_value' or evaluation_type == 'equation'"/>
                                <field name="update_boolean_value" class="oe_inline" invisible="evaluation_type != 'value' or value_field_to_show != 'update_boolean_value'" required="value_field_to_show == 'update_boolean_value'"/>
                                <span invisible="update_field_id != False or evaluation_type != 'value'" class="o_actions_server_set_a_value text-muted">Set a value...</span>
                                <span invisible="evaluation_type != 'equation'">
                                    to this Python expression:
                                </span>
                                <div class="w-100 d-flex flex-row gap-3" invisible="evaluation_type != 'equation'">
                                    <field name="value" class="w-50" widget="code" options="{'mode': 'python'}" string="Expression"/>
                                    <div class="w-50 opacity-75">
                                        <span colspan="2" class="text-muted"> Available variables: </span>
                                            <ul colspan="2" class="text-muted">
                                                <li><code>env</code>: environment on which the action is triggered</li>
                                                <li><code>model</code>: model of the record on which the action is triggered; is a void recordset</li>
                                                <li><code>record</code>: record on which the action is triggered</li>
                                                <li><code>records</code>: recordset of all records on which the action is triggered in multi mode</li>
                                                <li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries</li>
                                                <li><code>float_compare()</code>: utility function to compare floats based on a specific precision</li>
                                            </ul>
                                    </div>
                                </div>
                            </div>
                            <group invisible="state not in ['object_create', 'object_copy']">
                                <group>
                                    <field name="crud_model_id"
                                        options="{'no_create': True, 'no_open': True}"
                                        required="state in ['object_create', 'object_copy']"/>
                                    <field name="value" widget="char" string="Name" invisible="state != 'object_create'"
                                        help="The name of the record to create" placeholder="e.g. Follow-up"/>
                                    <field name="resource_ref" placeholder="Choose a record..." string="Duplicate from" options="{'model_field': 'crud_model_id', 'no_create': True, 'no_open': True}" invisible="crud_model_id == False or state != 'object_copy'" required="state == 'object_copy'"/>
                                    <field name="link_field_id"
                                        domain="[('model_id', '=', model_id), ('relation', '=', crud_model_name),
                                        ('ttype', 'in', ['many2one', 'one2many', 'many2many'])]"
                                        placeholder="Select a field to link the record to"
                                        options="{'no_create': True, 'no_open': True}"
                                        context="{'default_model_id': model_id, 'default_relation': crud_model_name}"/>
                                </group>
                            </group>
                            <group invisible="state != 'webhook'">
                                <group>
                                    <field name="webhook_url" string="URL" placeholder="e.g. https://maker.ifttt.com/use/..."/>
                                    <field name="webhook_field_ids" string="Fields" widget="many2many_tags" context="{'hide_model': 1}" domain="[('model_id', '=', model_id)]" placeholder="Select fields to include in the request..."/>
                                </group>
                                <group>
                                    <label for="webhook_sample_payload" />
                                    <field name="webhook_sample_payload" string="Sample Payload" nolabel="1" colspan="2" readonly="1" widget="code" options="{'mode': 'javascript'}" />
                                </group>
                            </group>
                            <t invisible="state != 'multi'">
                                <field name="child_ids" widget="many2many" mode="kanban" context="{
                                    'is_modal': 1,
                                    'default_model_id': model_id,
                                }"/>
                            </t>
                            <notebook>
                                <page string="Code" invisible="state != 'code'">
                                    <field name="code" invisible="state != 'code'" widget="code" options="{'mode': 'python'}" placeholder="Enter Python code here. Help about Python expression is available in the help tab of this document."/>
                                </page>
                                <page string="Help" invisible="state != 'code'" name="ir_actions_server_code_help">
                                    <p>The following variables can be used:</p>
                                    <ul>
                                        <li><code>env</code>: environment on which the action is triggered</li>
                                        <li><code>model</code>: model of the record on which the action is triggered; is a void recordset</li>
                                        <li><code>record</code>: record on which the action is triggered; may be be void</li>
                                        <li><code>records</code>: recordset of all records on which the action is triggered in multi mode; may be void</li>
                                        <li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries</li>
                                        <li><code>float_compare()</code>: utility function to compare floats based on a specific precision</li>
                                        <li><code>log(message, level='info')</code>: logging function to record debug information in <code>ir.logging</code> table</li>
                                        <li><code>_logger.info(message)</code>: logger to emit messages in server logs</li>
                                        <li><code>UserError</code>: exception class for raising user-facing warning messages</li>
                                        <li><code>Command</code>: x2many commands namespace</li>
                                        <li>To return an action, assign: <code>action = {...}</code></li>
                                        <li>To notify progress for CRON call and re-trigger a call if there is remaining tasks, use <code>env['ir.cron']._notify_progress(done=task_done_count, remaining=task_remaining_count)</code></li>
                                    </ul>
                                    <p>
                                        <widget name="documentation_link"
                                                path="/developer/reference/backend/orm.html"
                                                label="ORM API Documentation"
                                                icon="oi oi-fw oi-arrow-right me-1"/>
                                    </p>
                                    <div >
                                        <p>Example of Python code:</p>
                                        <pre style='white-space: pre-wrap'>partner_name = record.name + '_code'
env['res.partner'].create({'name': partner_name})
    </pre>
                                    </div>
                                </page>
                                <page string="Usage" name="usage" invisible="1"/>
                            </notebook>
                        </t>
                    </sheet>
                </form>
            </field>
        </record>

        <record id="view_server_action_kanban" model="ir.ui.view">
            <field name="name">Server Actions</field>
            <field name="model">ir.actions.server</field>
            <field name="arch" type="xml">
                <kanban>
                    <control>
                        <create string="Add an action" />
                    </control>
                    <field name="state"/>
                    <field name="evaluation_type"/>
                    <field name="value"/>
                    <field name="value_field_to_show"/>
                    <field name="update_field_type"/>
                    <field name="update_m2m_operation"/>
                    <templates>
                        <t t-name="card" class="o_draggable_norotate w-100 flex-row align-items-center gap-1">
                            <field name="sequence" widget="handle" class="px-1" />
                            <!-- Icon section -->
                            <i
                                data-name="server_action_icon"
                                t-att-title="record.state.value"
                                class="fa fa-fw"
                                t-att-class="{
                                    'code': 'fa-code',
                                    'object_create': 'fa-plus-square',
                                    'object_copy': 'fa-clone',
                                    'object_write': 'fa-pencil',
                                    'multi': 'fa-list-ul',
                                    'mail_post': 'fa-envelope',
                                    'followers': 'fa-user',
                                    'remove_followers': 'fa-user-times',
                                    'next_activity': 'fa-clock-o',
                                    'sms': 'fa-mobile',
                                    'webhook': 'fa-paper-plane',
                                    'whatsapp': 'fa-whatsapp',
                                    'ai': 'fa-magic',
                                }[record.state.raw_value] || 'fa-circle-thin'"
                            />
                            <i class="fa fa-warning text-warning px-2 m-0" invisible="not warning" t-att-title="record.warning.raw_value"/>
                            <field name="name" class="text-truncate" />
                            <button type="delete" name="delete" class="btn fa fa-trash fa-xl px-3 ms-auto" title="Delete Action" />
                        </t>
                    </templates>
                </kanban>
            </field>
        </record>

        <record id="view_server_action_tree" model="ir.ui.view">
            <field name="name">Server Actions</field>
            <field name="model">ir.actions.server</field>
            <field name="arch" type="xml">
                <list string="Server Actions">
                    <field name="name" string="Name"/>
                    <field name="model_id"/>
                    <field name="state"/>
                    <field name="usage"/>
                </list>
            </field>
        </record>
        <record id="view_server_action_search" model="ir.ui.view">
            <field name="name">ir.actions.server.search</field>
            <field name="model">ir.actions.server</field>
            <field name="arch" type="xml">
                <search string="Server Actions">
                    <field name="name" string="Server Action"/>
                    <field name="model_id"/>
                    <field name="state"/>
                    <filter string="Top-level actions" name="toplevel_actions" domain="[('parent_id', '=', False)]"/>
                    <group colspan="4" col="4">
                        <filter string="Action Type" name="action_type" domain="[]" context="{'group_by':'state'}"/>
                        <filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
                        <filter string="Usage" name="usage" domain="[]" context="{'group_by':'usage'}"/>
                    </group>
                </search>
            </field>
        </record>
        <record id="action_server_action" model="ir.actions.act_window">
            <field name="name">Server Actions</field>
            <field name="res_model">ir.actions.server</field>
            <field name="path">server-actions</field>
            <field name="view_mode">list,form</field>
            <field name="view_id" ref="view_server_action_tree"/>
            <field name="search_view_id" ref="view_server_action_search"/>
            <field name="context">{
                'key':'server_action',
                'search_default_toplevel_actions': 1,
            }</field>
        </record>
        <menuitem action="action_server_action" id="menu_server_action" parent="base.next_id_6"/>

        <!-- ir.embedded.actions -->

        <record id="embedded_action_form" model="ir.ui.view">
            <field name="name">ir.embedded.actions.form</field>
            <field name="model">ir.embedded.actions</field>
            <field name="arch" type="xml">
                <form>
                    <sheet>
                        <group>
                            <group>
                                <field name="name"/>
                                <field name="parent_action_id"/>
                                <field name="action_id"/>
                                <field name="user_id"/>
                                <field name="filter_ids" widget="many2many_tags"/>
                            </group>
                            <group>
                                <field name="sequence"/>
                                <field name="is_deletable"/>
                                <field name="default_view_mode"/>
                                <field name="parent_res_model"/>
                                <field name="domain"/>
                                <field name="groups_ids" widget="many2many_tags"/>
                            </group>
                        </group>
                    </sheet>
                </form>
            </field>
        </record>

        <record id="embedded_action_tree" model="ir.ui.view">
            <field name="name">Embedded Actions</field>
            <field name="model">ir.embedded.actions</field>
            <field name="arch" type="xml">
                <list>
                    <field name="name"/>
                    <field name="parent_action_id"/>
                    <field name="action_id"/>
                    <field name="user_id"/>
                </list>
            </field>
        </record>

        <record id="ir_embedded_action" model="ir.actions.act_window">
            <field name="name">Embedded Actions</field>
            <field name="res_model">ir.embedded.actions</field>
            <field name="view_id" ref="embedded_action_tree"/>
        </record>
        <menuitem action="ir_embedded_action" id="menu_ir_embedded_action" parent="base.next_id_6"/>

        <!-- ir.actions.todo -->

        <record id="ir_actions_todo_tree" model="ir.ui.view">
            <field name="model">ir.actions.todo</field>
            <field name="name">Config Wizard Steps</field>
            <field name="arch" type="xml">
                <list string="Config Wizard Steps">
                    <field name="sequence" widget='handle'/>
                    <field name="action_id"/>
                    <field name="state" readonly="1"/>
                    <button name="action_launch" invisible="state != 'open'" string="Launch" type="object" icon="fa-cogs" help="Launch Configuration Wizard"/>
                    <button name="action_open" invisible="state != 'done'"
                            string="Todo" type="object" help="Set as Todo"
                            icon="fa-exchange"/>
                </list>
            </field>
        </record>
        <record id="config_wizard_step_view_form" model="ir.ui.view">
            <field name="model">ir.actions.todo</field>
            <field name="name">Config Wizard Steps</field>
            <field name="arch" type="xml">
                <form string="Config Wizard Steps">
                  <header>
                        <button name="action_launch"
                            invisible="state != 'open'" string="Launch"
                            type="object" icon="fa-cogs" class="oe_highlight"
                            help="Launch Configuration Wizard"/>
                        <button name="action_open" invisible="state != 'done'"
                            string="Set as Todo" type="object"
                            icon="fa-exchange" class="oe_highlight"/>
                        <field name="state" widget="statusbar" statusbar_visible="open,done" nolabel="1" readonly="1" />
                  </header>
                  <sheet>
                    <group col="4">
                        <field name="action_id"/>
                        <field name="sequence"/>
                    </group>
                  </sheet>
                </form>
            </field>
        </record>
        <record id="config_wizard_step_view_search" model="ir.ui.view">
            <field name="model">ir.actions.todo</field>
            <field name="name">ir.actions.todo.select</field>
            <field name="arch" type="xml">
                <search string="Search Actions">
                    <filter string="To Do" name="todo" domain="[('state','=','open')]" help="Wizards to be Launched"/>
                    <field name="action_id"/>
                    <field name="state"/>
                </search>
            </field>
        </record>
        <record id="act_ir_actions_todo_form" model="ir.actions.act_window">
            <field name="name">Configuration Wizards</field>
            <field name="res_model">ir.actions.todo</field>
            <field name="view_id" ref="ir_actions_todo_tree"/>
            <field name="help">The configuration wizards are used to help you configure a new instance of Odoo. They are launched during the installation of new modules, but you can choose to restart some wizards manually from this menu.</field>
        </record>
        <menuitem id="menu_ir_actions_todo_form" action="act_ir_actions_todo_form" parent="base.next_id_6"/>
        <record id="action_run_ir_action_todo" model="ir.actions.server">
            <field name="name">Config: Run Remaining Action Todo</field>
            <field name="model_id" ref="model_res_config"/>
            <field name="state">code</field>
            <field name="code">
config = model.next() or {}
if config.get('type') not in ('ir.actions.act_window_close',):
    action = config
</field>
        </record>

</odoo>
