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>
59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
{
|
|
'name': 'Fusion Plating — Reports',
|
|
'version': '19.0.4.9.0',
|
|
'category': 'Manufacturing/Plating',
|
|
'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.',
|
|
'depends': [
|
|
'sale',
|
|
'sale_pdf_quote_builder',
|
|
'account',
|
|
'stock',
|
|
'mrp',
|
|
'fusion_plating',
|
|
'fusion_plating_quality',
|
|
'fusion_plating_compliance',
|
|
'fusion_plating_safety',
|
|
'fusion_plating_portal',
|
|
'fusion_plating_configurator',
|
|
'fusion_plating_bridge_mrp',
|
|
'fusion_plating_logistics',
|
|
],
|
|
'data': [
|
|
'security/ir.model.access.csv',
|
|
'report/report_base_styles.xml',
|
|
'report/report_actions.xml',
|
|
# Quality + compliance reports
|
|
'report/report_coc.xml',
|
|
'report/report_ncr.xml',
|
|
'report/report_capa.xml',
|
|
'report/report_bath_chemistry_log.xml',
|
|
'report/report_calibration_cert.xml',
|
|
'report/report_fair.xml',
|
|
'report/report_audit.xml',
|
|
'report/report_incident.xml',
|
|
'report/report_spill.xml',
|
|
'report/report_waste_manifest.xml',
|
|
'report/report_discharge_sample.xml',
|
|
'report/report_wo_margin.xml',
|
|
# Quote-to-cash reports (portrait + landscape)
|
|
'report/report_fp_sale.xml',
|
|
'report/report_fp_work_order.xml',
|
|
'report/report_fp_job_traveller.xml',
|
|
'report/report_fp_packing_slip.xml',
|
|
'report/report_fp_bol.xml',
|
|
'report/report_fp_invoice.xml',
|
|
'report/report_fp_receipt.xml',
|
|
# Hide Odoo's default reports from the Print menu wherever FP
|
|
# ships an equivalent (loaded last so it overrides any earlier
|
|
# binding declarations from base modules).
|
|
'data/fp_hide_default_reports.xml',
|
|
],
|
|
'installable': True,
|
|
'application': False,
|
|
'auto_install': False,
|
|
'license': 'OPL-1',
|
|
}
|