<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data>
        <!-- Admin-managed sidebar menu: a friendlier, dedicated front door onto
             the SAME ir.ui.menu records Odoo's own Technical > Menu Items page
             already edits (base.grant_menu_access/edit_menu/edit_menu_access).
             Deliberately NOT inheriting those stock views, since they gate
             several fields behind base.group_no_one (debug mode) and are
             shared with that existing page, so any xpath change here would
             silently change it too. These are fresh view/action/menu records
             instead: same model, same live effect (any write already busts
             the menu cache, see models/ir_ui_menu.py), zero risk to the
             existing Technical entry point. -->

        <record id="xeno_sidebar_menu_settings_search" model="ir.ui.view">
            <field name="name">ir.ui.menu.xeno.sidebar.search</field>
            <field name="model">ir.ui.menu</field>
            <field name="arch" type="xml">
                <search string="Sidebar Menu Settings">
                    <field name="name" string="Menu"/>
                    <field name="parent_id"/>
                    <field name="group_ids" string="Visible to Groups"/>
                    <field name="xeno_extra_user_ids" string="Also Visible To"/>
                    <filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
                    <group>
                        <filter string="Parent Menu" name="group_by_parent"
                                context="{'group_by': 'parent_id'}"/>
                    </group>
                </search>
            </field>
        </record>

        <record id="xeno_sidebar_menu_settings_list" model="ir.ui.view">
            <field name="name">ir.ui.menu.xeno.sidebar.list</field>
            <field name="model">ir.ui.menu</field>
            <field name="arch" type="xml">
                <list string="Sidebar Menu Settings" editable="bottom" default_order="sequence">
                    <field name="sequence" widget="handle"/>
                    <field name="name"/>
                    <field name="parent_id"/>
                    <field name="action"/>
                    <field name="xeno_icon"/>
                    <field name="group_ids" widget="many2many_tags" string="Visible to Groups"/>
                    <field name="xeno_extra_user_ids" widget="many2many_tags" string="Also Visible To"/>
                    <field name="active" widget="boolean_toggle"/>
                </list>
            </field>
        </record>

        <record id="xeno_sidebar_menu_settings_form" model="ir.ui.view">
            <field name="name">ir.ui.menu.xeno.sidebar.form</field>
            <field name="model">ir.ui.menu</field>
            <field name="arch" type="xml">
                <form string="Sidebar Menu Item">
                    <sheet>
                        <group>
                            <group string="Basics">
                                <field name="name"/>
                                <field name="parent_id"/>
                                <field name="sequence"/>
                                <field name="active"/>
                            </group>
                            <group string="Where it goes">
                                <field name="action"
                                       help="Pick an existing action, or use 'Search More...' to create a new one. For a plain external link, choose or create a URL (ir.actions.act_url) action."/>
                            </group>
                        </group>
                        <group>
                            <group string="Icon">
                                <field name="xeno_icon"
                                       help="FontAwesome class (e.g. fa-plane) used by the custom sidebar. Leave blank to keep the current default icon."/>
                                <field name="web_icon"
                                       help="Odoo's own image-based app icon (top-level apps only)."/>
                            </group>
                            <group string="Visibility">
                                <field name="group_ids" widget="many2many_tags" string="Visible to Groups"
                                       help="Leave empty to keep this visible to everyone (Odoo then falls back to whether the underlying action's model is readable)."/>
                                <field name="xeno_extra_user_ids" widget="many2many_tags" string="Also Visible To"
                                       help="Specific users who can see this menu even if their Groups don't match. Only adds visibility, never removes it."/>
                            </group>
                        </group>
                    </sheet>
                </form>
            </field>
        </record>

        <record id="xeno_sidebar_menu_settings_action" model="ir.actions.act_window">
            <field name="name">Sidebar Menu Settings</field>
            <field name="res_model">ir.ui.menu</field>
            <field name="view_mode">list,form</field>
            <field name="search_view_id" ref="xeno_sidebar_menu_settings_search"/>
            <field name="context">{'ir.ui.menu.full_list': True, 'search_default_group_by_parent': 1}</field>
            <field name="help" type="html">
                <p class="o_view_nocontent_smiling_face">No menu items found.</p>
                <p>Add, reorder (drag the handle), or hide sidebar menu items -- changes take effect immediately, no deploy needed.</p>
            </field>
        </record>
        <record id="xeno_sidebar_menu_settings_action_view_list" model="ir.actions.act_window.view">
            <field name="sequence" eval="1"/>
            <field name="view_mode">list</field>
            <field name="view_id" ref="xeno_sidebar_menu_settings_list"/>
            <field name="act_window_id" ref="xeno_sidebar_menu_settings_action"/>
        </record>
        <record id="xeno_sidebar_menu_settings_action_view_form" model="ir.actions.act_window.view">
            <field name="sequence" eval="2"/>
            <field name="view_mode">form</field>
            <field name="view_id" ref="xeno_sidebar_menu_settings_form"/>
            <field name="act_window_id" ref="xeno_sidebar_menu_settings_action"/>
        </record>
    </data>
    <data noupdate="1">
        <!-- Company-wide navigation, so gated to base.group_system like this
             module's other one company-wide (non-HR) menu concern, per
             sidebar_menu_access.xml's own comment on base.menu_management. -->
        <menuitem id="menu_xeno_sidebar_menu_settings"
                  name="Sidebar Menu Settings"
                  parent="base.menu_administration"
                  action="xeno_sidebar_menu_settings_action"
                  groups="base.group_system"
                  sequence="60"/>
    </data>
</odoo>
