Files
Odoo-Modules/fusion_repairs/views/menus.xml
gsinghpal 750c7068e2 fix(fusion_repairs): activity-create access error + dashboard landing
Two complaints from the first hands-on test:

1) Submit button raised "Access Error (Document type: Activity,
   Operation: create)" - the wizard called the intake service WITHOUT
   sudo so the mail.activity records the service schedules tripped on
   the activity ACL (admin's group chain does not auto-grant activity
   create on repair.order without sudo). Both portal controllers
   already sudo'd; the wizard now does too. x_fc_intake_user_id
   preserves audit identity regardless.

   Verified end-to-end as gsingh@westinhealthcare.com (admin):
     Created: BR-WA/RO/00025
     Activities: 2
     Source: backend_wizard
     Intake user: gsingh@westinhealthcare.com

2) "Real dashboard with dedicated pages would have been nice" - the
   main menu opened the wizard directly as a modal. Restructured so
   the menu lands on a proper kanban dashboard of service calls,
   matching the standard Odoo app pattern:

   Fusion Repairs (app icon)
     - Service Calls         <- dashboard kanban (default landing)
     - New Service Call      <- wizard (still a modal, accessed from menu OR kanban's New button)
     - All Repair Orders     <- native Odoo repair list (full backend)
     - Maintenance Contracts
     - Configuration
         - Equipment Categories / Intake Templates / Service Catalogue / Repair Warranties

   New view_fusion_repair_dashboard_kanban shows urgency badges (red /
   amber / grey), category, scheduled date, intake source pill, and
   a 3rd-party warning. Default group_by=state.

   New view_fusion_repair_dashboard_search adds quick filters: Today,
   This Week, Safety/Urgent, Third-Party, Open, plus per-source filters
   and Group By (Status / Urgency / Category / Intake Source).

   Wizard remains target='new' (modal) so submitting drops the user
   back to the kanban they came from with the new repair visible.

Bumped version to 19.0.1.0.2 to bust the asset bundle hash.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-20 22:38:27 -04:00

68 lines
2.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Top-level app menu - lands directly on the dashboard kanban -->
<menuitem id="menu_fusion_repairs_root"
name="Fusion Repairs"
sequence="48"
web_icon="fusion_repairs,static/description/icon.png"
action="action_fusion_repair_dashboard"
groups="fusion_repairs.group_fusion_repairs_user"/>
<menuitem id="menu_fusion_repairs_dashboard"
name="Service Calls"
parent="menu_fusion_repairs_root"
action="action_fusion_repair_dashboard"
sequence="10"/>
<menuitem id="menu_fusion_repairs_new_call"
name="New Service Call"
parent="menu_fusion_repairs_root"
action="action_open_repair_intake_wizard"
sequence="15"/>
<menuitem id="menu_fusion_repairs_all_orders"
name="All Repair Orders"
parent="menu_fusion_repairs_root"
action="repair.action_repair_order_tree"
sequence="20"/>
<menuitem id="menu_fusion_repairs_maintenance_contracts"
name="Maintenance Contracts"
parent="menu_fusion_repairs_root"
action="action_maintenance_contract"
sequence="30"/>
<!-- Configuration -->
<menuitem id="menu_fusion_repairs_configuration"
name="Configuration"
parent="menu_fusion_repairs_root"
sequence="90"
groups="fusion_repairs.group_fusion_repairs_manager"/>
<menuitem id="menu_fusion_repairs_categories"
name="Equipment Categories"
parent="menu_fusion_repairs_configuration"
action="action_repair_product_category"
sequence="10"/>
<menuitem id="menu_fusion_repairs_intake_templates"
name="Intake Templates"
parent="menu_fusion_repairs_configuration"
action="action_repair_intake_template"
sequence="20"/>
<menuitem id="menu_fusion_repairs_service_catalog"
name="Service Catalogue"
parent="menu_fusion_repairs_configuration"
action="action_repair_service_catalog"
sequence="30"/>
<menuitem id="menu_fusion_repairs_warranty"
name="Repair Warranties"
parent="menu_fusion_repairs_configuration"
action="action_repair_warranty_coverage"
sequence="40"/>
</odoo>