chore(reports): drop duplicate Print menu entries on legacy MRP models

After the fp.job migration, every MRP-bound Print action in
fusion_plating_reports has a fp.job-bound canonical version in
fusion_plating_jobs. Having both registered means clicking Print on a
record shows two identical entries.

Removed 7 ir.actions.report records (templates kept for backwards
compat — only the menu bindings are gone):

  action_report_wo_margin                   (mrp.production)
  action_report_fp_work_order_portrait      (mrp.workorder)
  action_report_fp_work_order_landscape     (mrp.workorder)
  action_report_fp_wo_sticker               (mrp.workorder)
  action_report_fp_mo_sticker               (mrp.production)
  action_report_fp_job_traveller_mo_landscape (mrp.production)
  action_report_fp_job_traveller_mo_portrait  (mrp.production)

Kept:
  action_report_fp_job_traveller_so_*  (sale.order)
  action_report_fp_so_sticker          (sale.order)

The shared inner sticker templates (report_fp_wo_sticker_inner /
_defaults) stay registered because fp.job + sale.order stickers
both t-call them.

Version: reports 19.0.7.17 -> 19.0.7.18.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-04-26 10:53:19 -04:00
parent b8fe14e653
commit 160198edb1
2 changed files with 20 additions and 92 deletions

View File

@@ -3,7 +3,7 @@
# License OPL-1 (Odoo Proprietary License v1.0) # License OPL-1 (Odoo Proprietary License v1.0)
{ {
'name': 'Fusion Plating — Reports', 'name': 'Fusion Plating — Reports',
'version': '19.0.7.17.0', 'version': '19.0.7.18.0',
'category': 'Manufacturing/Plating', 'category': 'Manufacturing/Plating',
'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.', 'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.',
'depends': [ 'depends': [

View File

@@ -248,20 +248,11 @@
<field name="paperformat_id" ref="paperformat_fp_a4_landscape"/> <field name="paperformat_id" ref="paperformat_fp_a4_landscape"/>
</record> </record>
<!-- ============================================================= --> <!-- 12. Work Order Margin Report (mrp.production binding) — REMOVED.
<!-- 12. Work Order Margin Report --> Replaced by the fp.job-bound version in
<!-- ============================================================= --> fusion_plating_jobs/report/report_fp_job_margin.xml.
<record id="action_report_wo_margin" model="ir.actions.report"> The QWeb template (report_wo_margin) remains in templates for
<field name="name">Work Order Margin Report</field> any out-of-band callers; only the Print menu entry is gone. -->
<field name="model">mrp.production</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">fusion_plating_reports.report_wo_margin</field>
<field name="report_file">fusion_plating_reports.report_wo_margin</field>
<field name="print_report_name">'Margin Report - %s' % object.name</field>
<field name="binding_model_id" ref="mrp.model_mrp_production"/>
<field name="binding_type">report</field>
<field name="paperformat_id" ref="paperformat_fp_a4_landscape"/>
</record>
<!-- ============================================================= --> <!-- ============================================================= -->
<!-- 13. Quotation / Sales Order (Portrait + Landscape) --> <!-- 13. Quotation / Sales Order (Portrait + Landscape) -->
@@ -289,31 +280,9 @@
<field name="paperformat_id" ref="paperformat_fp_a4_landscape"/> <field name="paperformat_id" ref="paperformat_fp_a4_landscape"/>
</record> </record>
<!-- ============================================================= --> <!-- 14. Work Order Traveller (mrp.workorder bindings) — REMOVED.
<!-- 14. Work Order Traveller (Portrait + Landscape) --> Replaced by fp.job-bound traveller in
<!-- ============================================================= --> fusion_plating_jobs/report/report_fp_job_traveller.xml. -->
<record id="action_report_fp_work_order_portrait" model="ir.actions.report">
<field name="name">Work Order Traveller (Portrait)</field>
<field name="model">mrp.workorder</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">fusion_plating_reports.report_fp_work_order_portrait</field>
<field name="report_file">fusion_plating_reports.report_fp_work_order_portrait</field>
<field name="print_report_name">'WO - %s' % object.name</field>
<field name="binding_model_id" ref="mrp.model_mrp_workorder"/>
<field name="binding_type">report</field>
</record>
<record id="action_report_fp_work_order_landscape" model="ir.actions.report">
<field name="name">Work Order Traveller (Landscape)</field>
<field name="model">mrp.workorder</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">fusion_plating_reports.report_fp_work_order_landscape</field>
<field name="report_file">fusion_plating_reports.report_fp_work_order_landscape</field>
<field name="print_report_name">'WO - %s' % object.name</field>
<field name="binding_model_id" ref="mrp.model_mrp_workorder"/>
<field name="binding_type">report</field>
<field name="paperformat_id" ref="paperformat_fp_a4_landscape"/>
</record>
<!-- ============================================================= --> <!-- ============================================================= -->
<!-- 14b. Box Sticker — 4x3" label for parts-box identification --> <!-- 14b. Box Sticker — 4x3" label for parts-box identification -->
@@ -341,33 +310,12 @@
<field name="dpi">300</field> <field name="dpi">300</field>
</record> </record>
<record id="action_report_fp_wo_sticker" model="ir.actions.report"> <!-- WO Box Sticker (mrp.workorder + mrp.production bindings) —
<field name="name">WO Box Sticker</field> REMOVED. Replaced by the fp.job-bound version in
<field name="model">mrp.workorder</field> fusion_plating_jobs/report/report_fp_job_sticker.xml.
<field name="report_type">qweb-pdf</field> The shared inner templates (report_fp_wo_sticker_inner /
<field name="report_name">fusion_plating_reports.report_fp_wo_sticker</field> report_fp_wo_sticker_defaults) stay registered because
<field name="report_file">fusion_plating_reports.report_fp_wo_sticker</field> fp.job + sale.order stickers both t-call them. -->
<field name="print_report_name">'WO Sticker - %s' % object.name</field>
<field name="binding_model_id" ref="mrp.model_mrp_workorder"/>
<field name="binding_type">report</field>
<field name="paperformat_id" ref="paperformat_fp_wo_sticker"/>
</record>
<!-- Same sticker bound to mrp.production so "Print → WO Box
Sticker" appears on the MO form too. Operators live on the
MO form (WH/MO/00067 etc.); binding to both surfaces keeps
the workflow frictionless. -->
<record id="action_report_fp_mo_sticker" model="ir.actions.report">
<field name="name">WO Box Sticker</field>
<field name="model">mrp.production</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">fusion_plating_reports.report_fp_mo_sticker</field>
<field name="report_file">fusion_plating_reports.report_fp_mo_sticker</field>
<field name="print_report_name">'WO Sticker - %s' % (object.name or '').replace('/', '-')</field>
<field name="binding_model_id" ref="mrp.model_mrp_production"/>
<field name="binding_type">report</field>
<field name="paperformat_id" ref="paperformat_fp_wo_sticker"/>
</record>
<!-- Same sticker bound to sale.order — prints one sticker per <!-- Same sticker bound to sale.order — prints one sticker per
order line that carries a part, so estimators / receiving can order line that carries a part, so estimators / receiving can
@@ -492,32 +440,12 @@
</record> </record>
<!-- ============================================================= --> <!-- ============================================================= -->
<!-- 19. Job Traveller (Shop Router) --> <!-- 19. Job Traveller — Sales Order bindings only. -->
<!-- Four report actions: MO landscape/portrait + SO landscape/portrait --> <!-- The MO-bound bindings (mrp.production -> traveller) were -->
<!-- removed because fusion_plating_jobs ships the canonical -->
<!-- fp.job-bound traveller. The SO bindings stay; estimators -->
<!-- print the traveller from the SO before fp.jobs exist. -->
<!-- ============================================================= --> <!-- ============================================================= -->
<record id="action_report_fp_job_traveller_mo_landscape" model="ir.actions.report">
<field name="name">Job Traveller (Landscape)</field>
<field name="model">mrp.production</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">fusion_plating_reports.report_fp_job_traveller_mo_landscape</field>
<field name="report_file">fusion_plating_reports.report_fp_job_traveller_mo_landscape</field>
<field name="print_report_name">'Traveller - %s' % object.name</field>
<field name="binding_model_id" ref="mrp.model_mrp_production"/>
<field name="binding_type">report</field>
<field name="paperformat_id" ref="paperformat_fp_a4_landscape"/>
</record>
<record id="action_report_fp_job_traveller_mo_portrait" model="ir.actions.report">
<field name="name">Job Traveller (Portrait)</field>
<field name="model">mrp.production</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">fusion_plating_reports.report_fp_job_traveller_mo_portrait</field>
<field name="report_file">fusion_plating_reports.report_fp_job_traveller_mo_portrait</field>
<field name="print_report_name">'Traveller - %s' % object.name</field>
<field name="binding_model_id" ref="mrp.model_mrp_production"/>
<field name="binding_type">report</field>
</record>
<record id="action_report_fp_job_traveller_so_landscape" model="ir.actions.report"> <record id="action_report_fp_job_traveller_so_landscape" model="ir.actions.report">
<field name="name">Job Traveller (Landscape)</field> <field name="name">Job Traveller (Landscape)</field>
<field name="model">sale.order</field> <field name="model">sale.order</field>