From cd2584d6eebc6ef228ee24dd841f62a2acaf8e7f Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Tue, 12 May 2026 08:22:09 -0400 Subject: [PATCH] ui(rename): "Plating Job" -> "Work Order" / display "WO # 01368" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Standardise user-facing terminology across 5 modules (27 files): - display_name compute: 'Work Order # 01368' -> 'WO # 01368' - _description on 5 models: Plating Job{," Step"," Step Time Log"," Margin Report"," Recipe Node Override"} -> Work Order equivalents - field labels (string=...) on 13 Many2one / One2many fields across fp.batch, fp.thickness_reading, fp.quality.hold, fp.job_consumption, fp.portal.job, fp.certificate, fp.delivery, fp.quality.check, fp.racking.inspection, res.partner, sale.order - XML view labels: action names, list/form/search strings, portal template names, dashboard tile titles What's deliberately preserved: - DB model name 'fp.job' (technical identifier — used by sale_order.x_fc_plating_job_ids and all comodel refs) - Module name 'fusion_plating_jobs' (directory / import path) - Settings -> Apps display label 'Fusion Plating Jobs' (module identity for Odoo's app picker) - 'Use Native Plating Jobs' migration toggle (internal mechanism flag, not user-facing terminology) Verified on entech: WH/JOB/01368 now displays as 'WO # 01368' everywhere humans look (form header, breadcrumbs, M2O dropdowns, error messages, smart-button titles). Co-Authored-By: Claude Opus 4.7 (1M context) --- fusion_plating/fusion_plating/__manifest__.py | 2 +- fusion_plating/fusion_plating/models/fp_job.py | 6 +++--- fusion_plating/fusion_plating/models/fp_job_step.py | 2 +- .../fusion_plating/models/fp_job_step_timelog.py | 2 +- fusion_plating/fusion_plating/views/fp_job_views.xml | 2 +- fusion_plating/fusion_plating_jobs/__manifest__.py | 2 +- fusion_plating/fusion_plating_jobs/models/fp_batch.py | 2 +- .../fusion_plating_jobs/models/fp_certificate.py | 2 +- fusion_plating/fusion_plating_jobs/models/fp_delivery.py | 2 +- .../fusion_plating_jobs/models/fp_job_consumption.py | 2 +- .../fusion_plating_jobs/models/fp_job_node_override.py | 2 +- .../fusion_plating_jobs/models/fp_portal_job.py | 2 +- .../fusion_plating_jobs/models/fp_quality_hold.py | 2 +- .../fusion_plating_jobs/models/fp_thickness_reading.py | 2 +- .../fusion_plating_jobs/models/report_fp_job_margin.py | 2 +- fusion_plating/fusion_plating_jobs/models/sale_order.py | 2 +- .../fusion_plating_jobs/views/fp_certificate_views.xml | 2 +- fusion_plating/fusion_plating_portal/__manifest__.py | 2 +- .../fusion_plating_portal/models/res_partner.py | 4 ++-- .../fusion_plating_portal/views/fp_portal_dashboard.xml | 2 +- .../fusion_plating_portal/views/fp_portal_templates.xml | 4 ++-- .../views/fp_quote_request_views.xml | 8 ++++---- fusion_plating/fusion_plating_quality/__manifest__.py | 3 ++- .../fusion_plating_quality/models/fp_quality_check.py | 2 +- .../fusion_plating_quality/models/fp_quality_hold.py | 2 +- fusion_plating/fusion_plating_receiving/__manifest__.py | 2 +- .../models/fp_racking_inspection.py | 2 +- 27 files changed, 35 insertions(+), 34 deletions(-) diff --git a/fusion_plating/fusion_plating/__manifest__.py b/fusion_plating/fusion_plating/__manifest__.py index fddcfaff..c5e47887 100644 --- a/fusion_plating/fusion_plating/__manifest__.py +++ b/fusion_plating/fusion_plating/__manifest__.py @@ -5,7 +5,7 @@ { 'name': 'Fusion Plating', - 'version': '19.0.18.15.4', + 'version': '19.0.18.15.5', 'category': 'Manufacturing/Plating', 'summary': 'Core plating / metal finishing ERP: facilities, processes, tanks, baths, jobs, operators.', 'description': """ diff --git a/fusion_plating/fusion_plating/models/fp_job.py b/fusion_plating/fusion_plating/models/fp_job.py index 800ead9f..c918a611 100644 --- a/fusion_plating/fusion_plating/models/fp_job.py +++ b/fusion_plating/fusion_plating/models/fp_job.py @@ -50,7 +50,7 @@ class FpJob(models.Model): if dt.tzinfo is None: dt = pytz.UTC.localize(dt) return dt.astimezone(tz).strftime(fmt) - _description = 'Plating Job' + _description = 'Work Order' _inherit = ['mail.thread', 'mail.activity.mixin'] # Sub 12d — state-aware sort. Active work bubbles to the top # (in_progress → confirmed/draft → on_hold → done → cancelled), @@ -69,7 +69,7 @@ class FpJob(models.Model): @api.depends('name') def _compute_display_name(self): - """Reformat 'WH/JOB/00011' → 'Work Order # 00011' for every + """Reformat 'WH/JOB/00011' → 'WO # 00011' for every human-facing surface (form header, breadcrumbs, M2O dropdowns, smart-button titles, error messages). The DB `name` is unchanged so existing certs / deliveries / chatter references @@ -78,7 +78,7 @@ class FpJob(models.Model): for job in self: if job.name and '/' in job.name: suffix = job.name.rsplit('/', 1)[-1] - job.display_name = _('Work Order # %s') % suffix + job.display_name = _('WO # %s') % suffix else: job.display_name = job.name or '' diff --git a/fusion_plating/fusion_plating/models/fp_job_step.py b/fusion_plating/fusion_plating/models/fp_job_step.py index fcc4ceea..8ad5308c 100644 --- a/fusion_plating/fusion_plating/models/fp_job_step.py +++ b/fusion_plating/fusion_plating/models/fp_job_step.py @@ -23,7 +23,7 @@ from odoo.exceptions import AccessError, UserError class FpJobStep(models.Model): _name = 'fp.job.step' - _description = 'Plating Job Step' + _description = 'Work Order Step' _inherit = ['mail.thread'] _order = 'job_id, sequence, id' diff --git a/fusion_plating/fusion_plating/models/fp_job_step_timelog.py b/fusion_plating/fusion_plating/models/fp_job_step_timelog.py index 684d1152..55ab9865 100644 --- a/fusion_plating/fusion_plating/models/fp_job_step_timelog.py +++ b/fusion_plating/fusion_plating/models/fp_job_step_timelog.py @@ -17,7 +17,7 @@ from odoo.exceptions import AccessError, UserError class FpJobStepTimeLog(models.Model): _name = 'fp.job.step.timelog' - _description = 'Plating Job Step Time Log' + _description = 'Work Order Step Time Log' _inherit = ['mail.thread'] _order = 'date_started desc' diff --git a/fusion_plating/fusion_plating/views/fp_job_views.xml b/fusion_plating/fusion_plating/views/fp_job_views.xml index 1ea64d68..aa5c6f56 100644 --- a/fusion_plating/fusion_plating/views/fp_job_views.xml +++ b/fusion_plating/fusion_plating/views/fp_job_views.xml @@ -124,7 +124,7 @@ - Plating Jobs + Work Orders fp.job list,form diff --git a/fusion_plating/fusion_plating_jobs/__manifest__.py b/fusion_plating/fusion_plating_jobs/__manifest__.py index c8f69525..883dd096 100644 --- a/fusion_plating/fusion_plating_jobs/__manifest__.py +++ b/fusion_plating/fusion_plating_jobs/__manifest__.py @@ -3,7 +3,7 @@ # License OPL-1 (Odoo Proprietary License v1.0) { 'name': 'Fusion Plating — Native Jobs', - 'version': '19.0.8.21.0', + 'version': '19.0.8.21.1', 'category': 'Manufacturing/Plating', 'summary': 'Native plating job model — replaces mrp.production / mrp.workorder bridge.', 'author': 'Nexa Systems Inc.', diff --git a/fusion_plating/fusion_plating_jobs/models/fp_batch.py b/fusion_plating/fusion_plating_jobs/models/fp_batch.py index 40928cae..fab70b64 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_batch.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_batch.py @@ -22,5 +22,5 @@ class FusionPlatingBatch(models.Model): 'fp.job', related='x_fc_step_id.job_id', store=True, - string='Plating Job', + string='Work Order', ) diff --git a/fusion_plating/fusion_plating_jobs/models/fp_certificate.py b/fusion_plating/fusion_plating_jobs/models/fp_certificate.py index 33bd07cb..4437cfa2 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_certificate.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_certificate.py @@ -19,7 +19,7 @@ class FpCertificate(models.Model): x_fc_job_id = fields.Many2one( 'fp.job', - string='Plating Job', + string='Work Order', index=True, help="Native fp.job link. Coexists with bridge_mrp's production_id.", ) diff --git a/fusion_plating/fusion_plating_jobs/models/fp_delivery.py b/fusion_plating/fusion_plating_jobs/models/fp_delivery.py index f89f5086..adf73a3e 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_delivery.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_delivery.py @@ -13,7 +13,7 @@ class FusionPlatingDelivery(models.Model): x_fc_job_id = fields.Many2one( 'fp.job', - string='Plating Job', + string='Work Order', index=True, help='Native fp.job link. Coexists with the legacy job_ref Char.', ) diff --git a/fusion_plating/fusion_plating_jobs/models/fp_job_consumption.py b/fusion_plating/fusion_plating_jobs/models/fp_job_consumption.py index 200fcd1f..915cd9ae 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_job_consumption.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_job_consumption.py @@ -25,7 +25,7 @@ class FpJobConsumption(models.Model): _order = 'logged_date desc, id desc' job_id = fields.Many2one( - 'fp.job', string='Plating Job', + 'fp.job', string='Work Order', required=True, ondelete='cascade', index=True, ) step_id = fields.Many2one( diff --git a/fusion_plating/fusion_plating_jobs/models/fp_job_node_override.py b/fusion_plating/fusion_plating_jobs/models/fp_job_node_override.py index 2a1b903b..380be82b 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_job_node_override.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_job_node_override.py @@ -14,7 +14,7 @@ from odoo import api, fields, models class FpJobNodeOverride(models.Model): _name = 'fp.job.node.override' - _description = 'Plating Job Recipe Node Override' + _description = 'Work Order Recipe Node Override' _order = 'job_id, node_id' job_id = fields.Many2one( diff --git a/fusion_plating/fusion_plating_jobs/models/fp_portal_job.py b/fusion_plating/fusion_plating_jobs/models/fp_portal_job.py index b1ab2e08..262d1e93 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_portal_job.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_portal_job.py @@ -14,7 +14,7 @@ class FusionPlatingPortalJob(models.Model): x_fc_job_id = fields.Many2one( 'fp.job', - string='Plating Job', + string='Work Order', index=True, help='Native fp.job link. Coexists with x_fc_production_id (legacy ' 'mrp.production link).', diff --git a/fusion_plating/fusion_plating_jobs/models/fp_quality_hold.py b/fusion_plating/fusion_plating_jobs/models/fp_quality_hold.py index 971596e3..b9df6d2f 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_quality_hold.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_quality_hold.py @@ -13,7 +13,7 @@ class FusionPlatingQualityHold(models.Model): x_fc_job_id = fields.Many2one( 'fp.job', - string='Plating Job', + string='Work Order', index=True, help="Native fp.job link. Coexists with bridge_mrp's production_id " "link.", diff --git a/fusion_plating/fusion_plating_jobs/models/fp_thickness_reading.py b/fusion_plating/fusion_plating_jobs/models/fp_thickness_reading.py index 87e194a1..6bfbe2d7 100644 --- a/fusion_plating/fusion_plating_jobs/models/fp_thickness_reading.py +++ b/fusion_plating/fusion_plating_jobs/models/fp_thickness_reading.py @@ -12,7 +12,7 @@ class FpThicknessReading(models.Model): x_fc_job_id = fields.Many2one( 'fp.job', - string='Plating Job', + string='Work Order', index=True, ) x_fc_step_id = fields.Many2one( diff --git a/fusion_plating/fusion_plating_jobs/models/report_fp_job_margin.py b/fusion_plating/fusion_plating_jobs/models/report_fp_job_margin.py index a4c1abee..71bc89a9 100644 --- a/fusion_plating/fusion_plating_jobs/models/report_fp_job_margin.py +++ b/fusion_plating/fusion_plating_jobs/models/report_fp_job_margin.py @@ -11,7 +11,7 @@ from odoo import api, models class ReportFpJobMargin(models.AbstractModel): _name = 'report.fusion_plating_jobs.report_fp_job_margin' - _description = 'Plating Job Margin Report' + _description = 'Work Order Margin Report' @api.model def _get_report_values(self, docids, data=None): diff --git a/fusion_plating/fusion_plating_jobs/models/sale_order.py b/fusion_plating/fusion_plating_jobs/models/sale_order.py index 45be7cff..16b476a5 100644 --- a/fusion_plating/fusion_plating_jobs/models/sale_order.py +++ b/fusion_plating/fusion_plating_jobs/models/sale_order.py @@ -20,7 +20,7 @@ class SaleOrder(models.Model): _inherit = 'sale.order' x_fc_fp_job_count = fields.Integer( - string='Plating Jobs', + string='Work Orders', compute='_compute_fp_job_count', ) x_fc_fp_certificate_count = fields.Integer( diff --git a/fusion_plating/fusion_plating_jobs/views/fp_certificate_views.xml b/fusion_plating/fusion_plating_jobs/views/fp_certificate_views.xml index 1906ffac..3a1fb7cb 100644 --- a/fusion_plating/fusion_plating_jobs/views/fp_certificate_views.xml +++ b/fusion_plating/fusion_plating_jobs/views/fp_certificate_views.xml @@ -26,7 +26,7 @@ icon="fa-cogs" invisible="not x_fc_job_id"> + string="Work Order"/>