<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <record id="view_xeno_leave_approval_status_list" model="ir.ui.view">
            <field name="name">xeno.leave.approval.step.status.list</field>
            <field name="model">xeno.leave.approval.step</field>
            <field name="arch" type="xml">
                <list create="false" edit="false" delete="false"
                      decoration-danger="xeno_is_self_block"
                      default_order="xeno_waiting_since asc">
                    <field name="leave_employee_id" widget="many2one_avatar_user"/>
                    <field name="leave_department_id"/>
                    <field name="leave_type_id"/>
                    <field name="leave_request_date_from"/>
                    <field name="leave_number_of_days"/>
                    <field name="step_order" string="Step"/>
                    <field name="xeno_total_steps" string="Of"/>
                    <field name="label"/>
                    <field name="approver_user_id" widget="many2one_avatar_user"/>
                    <field name="xeno_waiting_since"/>
                    <field name="xeno_is_self_block" string="Stuck?" widget="boolean_toggle" readonly="1"/>
                </list>
            </field>
        </record>

        <record id="action_xeno_leave_approval_status" model="ir.actions.act_window">
            <field name="name">Approval Chain Status</field>
            <field name="res_model">xeno.leave.approval.step</field>
            <field name="view_mode">list</field>
            <field name="domain">[('state', '=', 'pending'), ('leave_state', 'in', ['confirm', 'validate1'])]</field>
            <field name="context">{'search_default_group_department': 1}</field>
            <field name="help" type="html">
                <p class="o_view_nocontent_smiling_face">Nothing waiting on anyone right now.</p>
                <p>Every leave request currently sitting at a step, company-wide -- not just the ones waiting on you (see "My Team Leaves" for that). Rows in red are stuck: the configured approver is the same person who requested the leave, so xeno_leave's self-approval guard will never let them clear it -- use Force Approve/Force Reject on the leave, or fix the department/employee approver config.</p>
            </field>
        </record>

        <record id="view_xeno_leave_approval_status_search" model="ir.ui.view">
            <field name="name">xeno.leave.approval.step.status.search</field>
            <field name="model">xeno.leave.approval.step</field>
            <field name="arch" type="xml">
                <search>
                    <field name="leave_employee_id"/>
                    <field name="leave_department_id"/>
                    <field name="approver_user_id"/>
                    <field name="leave_type_id"/>
                    <filter string="Stuck (self-approval)" name="stuck" domain="[('xeno_is_self_block', '=', True)]"/>
                    <filter string="Unassigned approver (any HR/Admin)" name="unassigned" domain="[('approver_user_id', '=', False)]"/>
                    <group>
                        <filter string="Department" name="group_department" context="{'group_by': 'leave_department_id'}"/>
                        <filter string="Approver" name="group_approver" context="{'group_by': 'approver_user_id'}"/>
                        <filter string="Leave Type" name="group_type" context="{'group_by': 'leave_type_id'}"/>
                    </group>
                </search>
            </field>
        </record>
    </data>
    <data noupdate="1">
        <menuitem id="menu_xeno_leave_approval_status"
                  name="Approval Chain Status"
                  parent="hr_holidays.menu_hr_holidays_management"
                  action="action_xeno_leave_approval_status"
                  groups="hr_holidays.group_hr_holidays_user"
                  sequence="16"/>
    </data>
</odoo>
