- Attendance now groups the operational records: All Attendances, Leave Requests, Correction Requests, Penalties (Leaves + Penalties moved in from top level). - Scheduling groups all schedule-building: Shift Planner, Scheduled Shifts, Shifts (templates, moved from Configuration), Schedule Audit. - Configuration: Settings, Locations, Enroll NFC Card (the NFC wizard moved in from top level). - Removed the duplicate top-level Locations menu (kept the one under Config). Only parent/sequence changed; no actions/views touched. Live on entech 3.13.2. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
184 lines
7.2 KiB
XML
184 lines
7.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
|
|
<!-- Top-Level Menu -->
|
|
<menuitem id="menu_fusion_clock_root"
|
|
name="Fusion Clock"
|
|
web_icon="fusion_clock,static/description/icon.png"
|
|
sequence="45"
|
|
groups="group_fusion_clock_user"/>
|
|
|
|
<!-- Dedicated kiosk app: a separate top-level icon (same artwork) that opens
|
|
the NFC kiosk. Gated to Kiosk Operator so shared tablet accounts see ONLY
|
|
this app, not the full Fusion Clock backend. -->
|
|
<record id="action_fusion_clock_kiosk_nfc" model="ir.actions.act_url">
|
|
<field name="name">Fusion Clock Kiosk</field>
|
|
<field name="url">/fusion_clock/kiosk/nfc</field>
|
|
<field name="target">self</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_fusion_clock_kiosk_app_root"
|
|
name="Fusion Clock Kiosk"
|
|
web_icon="fusion_clock,static/description/icon.png"
|
|
action="action_fusion_clock_kiosk_nfc"
|
|
sequence="46"
|
|
groups="group_fusion_clock_kiosk_app"/>
|
|
|
|
<!-- Dashboard -->
|
|
<menuitem id="menu_fusion_clock_dashboard"
|
|
name="Dashboard"
|
|
parent="menu_fusion_clock_root"
|
|
action="action_fusion_clock_dashboard"
|
|
sequence="5"
|
|
groups="group_fusion_clock_manager,group_fusion_clock_team_lead"/>
|
|
|
|
<!-- ============================================================
|
|
Attendance — day-to-day operational records
|
|
============================================================ -->
|
|
<menuitem id="menu_fusion_clock_attendance"
|
|
name="Attendance"
|
|
parent="menu_fusion_clock_root"
|
|
sequence="10"/>
|
|
|
|
<menuitem id="menu_fusion_clock_attendance_list"
|
|
name="All Attendances"
|
|
parent="menu_fusion_clock_attendance"
|
|
action="hr_attendance.hr_attendance_action"
|
|
sequence="10"
|
|
groups="group_fusion_clock_manager,group_fusion_clock_team_lead"/>
|
|
|
|
<menuitem id="menu_fusion_clock_leaves"
|
|
name="Leave Requests"
|
|
parent="menu_fusion_clock_attendance"
|
|
action="action_fusion_clock_leave_request"
|
|
sequence="20"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_corrections"
|
|
name="Correction Requests"
|
|
parent="menu_fusion_clock_attendance"
|
|
action="action_fusion_clock_correction"
|
|
sequence="30"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_penalties"
|
|
name="Penalties"
|
|
parent="menu_fusion_clock_attendance"
|
|
action="action_fusion_clock_penalty"
|
|
sequence="40"
|
|
groups="group_fusion_clock_manager,group_fusion_clock_team_lead"/>
|
|
|
|
<!-- ============================================================
|
|
Scheduling — building and posting schedules
|
|
============================================================ -->
|
|
<menuitem id="menu_fusion_clock_scheduling"
|
|
name="Scheduling"
|
|
parent="menu_fusion_clock_root"
|
|
sequence="20"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_shift_planner"
|
|
name="Shift Planner"
|
|
parent="menu_fusion_clock_scheduling"
|
|
action="action_fusion_clock_shift_planner"
|
|
sequence="5"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_scheduled_shifts"
|
|
name="Scheduled Shifts"
|
|
parent="menu_fusion_clock_scheduling"
|
|
action="action_fusion_clock_schedule"
|
|
sequence="10"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_shifts"
|
|
name="Shifts"
|
|
parent="menu_fusion_clock_scheduling"
|
|
action="action_fusion_clock_shift"
|
|
sequence="15"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_schedule_audit"
|
|
name="Schedule Audit"
|
|
parent="menu_fusion_clock_scheduling"
|
|
action="action_fusion_clock_schedule_audit"
|
|
sequence="20"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<!-- Activity Logs — cross-cutting audit trail -->
|
|
<menuitem id="menu_fusion_clock_activity_logs"
|
|
name="Activity Logs"
|
|
parent="menu_fusion_clock_root"
|
|
action="action_fusion_clock_activity_log"
|
|
sequence="30"
|
|
groups="group_fusion_clock_manager,group_fusion_clock_team_lead"/>
|
|
|
|
<!-- Reports Sub-Menu -->
|
|
<menuitem id="menu_fusion_clock_reports_parent"
|
|
name="Reports"
|
|
parent="menu_fusion_clock_root"
|
|
sequence="40"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_reports"
|
|
name="All Reports"
|
|
parent="menu_fusion_clock_reports_parent"
|
|
action="action_fusion_clock_report"
|
|
sequence="10"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_generate_historical"
|
|
name="Generate Historical Reports"
|
|
parent="menu_fusion_clock_reports_parent"
|
|
action="action_server_generate_historical"
|
|
sequence="20"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<!-- Employees -->
|
|
<menuitem id="menu_fusion_clock_employees"
|
|
name="Employees"
|
|
parent="menu_fusion_clock_root"
|
|
action="hr.open_view_employee_list_my"
|
|
sequence="50"
|
|
groups="group_fusion_clock_manager,group_fusion_clock_team_lead"/>
|
|
|
|
<!-- ============================================================
|
|
Configuration — setup
|
|
============================================================ -->
|
|
<menuitem id="menu_fusion_clock_config"
|
|
name="Configuration"
|
|
parent="menu_fusion_clock_root"
|
|
sequence="90"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<record id="action_fusion_clock_config_settings" model="ir.actions.act_window">
|
|
<field name="name">Fusion Clock Settings</field>
|
|
<field name="res_model">res.config.settings</field>
|
|
<field name="view_mode">form</field>
|
|
<field name="target">current</field>
|
|
<field name="context">{'module': 'fusion_clock', 'bin_size': False}</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_fusion_clock_settings"
|
|
name="Settings"
|
|
parent="menu_fusion_clock_config"
|
|
action="action_fusion_clock_config_settings"
|
|
sequence="10"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_locations_config"
|
|
name="Locations"
|
|
parent="menu_fusion_clock_config"
|
|
action="action_fusion_clock_location"
|
|
sequence="20"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
<menuitem id="menu_fusion_clock_nfc_enrollment"
|
|
name="Enroll NFC Card"
|
|
parent="menu_fusion_clock_config"
|
|
action="action_fusion_clock_nfc_enrollment_wizard"
|
|
sequence="30"
|
|
groups="group_fusion_clock_manager"/>
|
|
|
|
</odoo>
|