gsinghpal
fa82ce17dd
feat(reports): sequence-sort the Print dropdown so FP reports are #1
Odoo 19's `ir.actions.actions._get_bindings` returns the print-menu
bindings via `ORDER BY a.id` (insertion order) and only sequence-sorts
the `action`-type bindings — `report`-type bindings are returned in
raw SQL order. Result: FP reports installed after Odoo's stock ones
appear at the BOTTOM of the dropdown, even when they're the
customer-facing primary report (e.g. Timesheets above Quotation on
sale.order).
Two changes in fusion_plating_reports/models/ir_actions_report.py:
1. **Add `sequence` (Integer, default 100) to ir.actions.report** —
gives every report a sortable knob.
2. **Override `ir.actions.actions._get_bindings`** to also sort the
`report` slice by `(sequence, name.lower())`. super() returns the
cached frozendict; we rebuild with the sorted reports.
Then set sequences in fp_hide_default_reports.xml (lower = top):
| Model | seq 10 (#1) | seq 15 (#2) | seq 20+ |
|-----------------|--------------------------|--------------------------|-----------------------|
| sale.order | FP Quotation Portrait | FP Quotation Landscape | FP Job Traveller (20) |
| account.move | FP Invoice Portrait | FP Invoice Landscape | |
| stock.picking | FP Packing Slip Portrait | FP Packing Slip Landscape| |
| mrp.production | FP Job Traveller Portrait| FP Job Traveller Landscape| FP WO Margin (20) |
| account.payment | FP Receipt Portrait | FP Receipt Landscape | |
| fp.delivery | FP BoL Portrait | FP BoL Landscape | |
| portal.job | FP CoC Portrait | FP CoC Landscape | |
| fp.certificate | FP CoC English | FP CoC Français | |
Odoo defaults stay at sequence 100 (default) → always at bottom.
Verified on entech: sale.order print menu now shows
Quotation Portrait → Quotation Landscape → Job Traveller × 2 →
PRO-FORMA → Timesheets. Same pattern across all touched models.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>