chore(plating): de-dash shipped code + intake-neutral customer emails

Replace em-dashes and en-dashes with hyphens across 789 shipped source
files (py/xml/js/scss) so the delivered module reads as human-written;
em-dashes had become a recognizable AI-generated tell. Internal .md dev
notes are excluded. The WO-sticker mojibake strippers keep their dash
search targets (now written — / –). No logic changes: comments
and display strings only; validated with py_compile + lxml parse.

Rewrite the 7 customer notification emails to be intake-neutral
(ship-in / drop-off / pickup) and repair-aware, and fix the Shipped
email documents line (packing slip vs bill of lading; certificate only
when issued). Subjects use a hyphen separator.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-06-05 00:16:19 -04:00
parent c9eb61ee0c
commit 8c76a16366
789 changed files with 4692 additions and 4692 deletions

View File

@@ -149,7 +149,7 @@
<group>
<field name="thickness_report_pdf_id"
widget="many2one_binary"
help="Upload the Fischerscope / XDAL 600 PDF readings will be auto-extracted."/>
help="Upload the Fischerscope / XDAL 600 PDF - readings will be auto-extracted."/>
<field name="thickness_reading_count" readonly="1"/>
<field name="require_thickness_readings" readonly="1"/>
<field name="require_thickness_report_pdf" readonly="1"/>
@@ -218,7 +218,7 @@
<field name="search_view_id" ref="fp_quality_check_search"/>
</record>
<!-- ===== Menu add QC Checks + QC Templates under Quality ===== -->
<!-- ===== Menu - add QC Checks + QC Templates under Quality ===== -->
<menuitem id="menu_fp_quality_check"
name="Quality Checks"
parent="fusion_plating_quality.menu_fp_quality"

View File

@@ -3,7 +3,7 @@
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
Sub 5 Serial Number registry views.
Sub 5 - Serial Number registry views.
-->
<odoo>

View File

@@ -80,7 +80,7 @@
sequence="55"
groups="fusion_plating.group_fusion_plating_manager"/>
<!-- Employee form Shop Roles + Lead Hand For + Proficiency tracker -->
<!-- Employee form - Shop Roles + Lead Hand For + Proficiency tracker -->
<record id="view_hr_employee_form_fp_roles" model="ir.ui.view">
<field name="name">hr.employee.form.fp.roles</field>
<field name="model">hr.employee</field>
@@ -141,7 +141,7 @@
</field>
</record>
<!-- Process node form add role field -->
<!-- Process node form - add role field -->
<record id="view_fp_process_node_form_fp_roles" model="ir.ui.view">
<field name="name">fusion.plating.process.node.form.fp.roles</field>
<field name="model">fusion.plating.process.node</field>

View File

@@ -38,7 +38,7 @@
<div><strong><field name="name"/></strong></div>
<div class="text-muted">
Qty: <field name="qty_remaining"/>
<t t-if="record.duration.raw_value"> <field name="duration" widget="float_time"/> elapsed</t>
<t t-if="record.duration.raw_value"> - <field name="duration" widget="float_time"/> elapsed</t>
</div>
</div>
<div class="o_kanban_record_bottom">

View File

@@ -62,7 +62,7 @@
</xpath>
<xpath expr="//div[@name='button_box']" position="inside">
<!-- Sale Order back to the customer's order -->
<!-- Sale Order - back to the customer's order -->
<button name="action_view_sale_order" type="object"
class="oe_stat_button" icon="fa-file-text-o"
invisible="not x_fc_sale_order_id">
@@ -73,13 +73,13 @@
<span class="o_stat_text">Sale Order</span>
</div>
</button>
<!-- Work Orders drill into the WO list -->
<!-- Work Orders - drill into the WO list -->
<button name="action_view_workorders" type="object"
class="oe_stat_button" icon="fa-cogs">
<field name="x_fc_workorder_count" widget="statinfo"
string="Work Orders"/>
</button>
<!-- Receiving link to the parts-receiving record(s) -->
<!-- Receiving - link to the parts-receiving record(s) -->
<button name="action_view_receiving" type="object"
class="oe_stat_button" icon="fa-truck"
invisible="x_fc_receiving_count == 0">
@@ -111,7 +111,7 @@
<field name="x_fc_consumption_count" widget="statinfo"
string="Consumables"/>
</button>
<!-- Quality Check tablet-style checklist -->
<!-- Quality Check - tablet-style checklist -->
<button name="action_open_active_qc" type="object"
class="oe_stat_button" icon="fa-check-square-o"
invisible="x_fc_qc_check_count == 0">

View File

@@ -78,7 +78,7 @@
</xpath>
<!-- ============================================================
3. CUSTOMER FIELD left column, after workcenter_id
3. CUSTOMER FIELD - left column, after workcenter_id
============================================================ -->
<xpath expr="//sheet//field[@name='workcenter_id']" position="after">
<field name="x_fc_customer_id" readonly="1"
@@ -86,7 +86,7 @@
</xpath>
<!-- ============================================================
3b. STEP BADGE + PRIORITY right column, after production_id
3b. STEP BADGE + PRIORITY - right column, after production_id
============================================================ -->
<xpath expr="//sheet//field[@name='production_id']" position="after">
<field name="x_fc_step_display" widget="badge" readonly="1"/>
@@ -112,7 +112,7 @@
</xpath>
<!-- ============================================================
SIGN OFF BUTTON only visible when the recipe step
SIGN OFF BUTTON - only visible when the recipe step
requires a sign-off and the WO is in progress.
============================================================ -->
<xpath expr="//header" position="inside">
@@ -145,7 +145,7 @@
</xpath>
<!-- ============================================================
5. NOTEBOOK restructured tabs
5. NOTEBOOK - restructured tabs
============================================================ -->
<!-- 5a. Rename "Time Tracking" → "Time &amp; Cost" and add cost summary -->
@@ -185,7 +185,7 @@
</group>
</xpath>
<!-- 5b. Process Details tab content adapts to WO kind so
<!-- 5b. Process Details tab - content adapts to WO kind so
operators see only the equipment fields that matter. -->
<xpath expr="//notebook/page[@name='time_tracking']" position="after">
<page string="Process Details" name="plating_details">
@@ -227,7 +227,7 @@
</group>
</group>
<!-- Rack / de-rack WOs.
Note: required="x_fc_wo_kind == 'rack'" (not "1")
Note: required="x_fc_wo_kind == 'rack'" (not "1") -
in Odoo 19 a `required="1"` on a field inside an
invisible group still triggers the missing-required
flag, painting the whole tab red on every WO. -->
@@ -248,14 +248,14 @@
<!-- Inspection -->
<group invisible="x_fc_wo_kind != 'inspect'">
<div class="alert alert-info" role="alert">
Inspection record Fischerscope readings via
Inspection - record Fischerscope readings via
the Tablet Station. Cal-std + n measurements
per part. Readings auto-link to the CoC.
</div>
</group>
<group invisible="x_fc_wo_kind != 'other'">
<div class="alert alert-light text-muted" role="alert">
Generic operation equipment is identified
Generic operation - equipment is identified
by the work centre.
</div>
</group>
@@ -287,9 +287,9 @@
</page>
</xpath>
<!-- 5d. Components tab already exists at name="components" no change needed -->
<!-- 5d. Components tab already exists at name="components" - no change needed -->
<!-- 5e. Blocked By tab keep existing, just push it last visually
<!-- 5e. Blocked By tab - keep existing, just push it last visually
(it's already the last page in the base view, so no reorder needed) -->
<!-- ============================================================

View File

@@ -54,7 +54,7 @@
</button>
</xpath>
<!-- Hide Odoo's default state statusbar replaced below by
<!-- Hide Odoo's default state statusbar - replaced below by
the custom plating workflow statusbar that reflects the
real lifecycle (awaiting parts → in production → shipped → ...). -->
<xpath expr="//header//field[@name='state']" position="attributes">
@@ -63,7 +63,7 @@
<!-- ===== Contextual workflow buttons on the header =====
One (sometimes two) visible at a time. Pattern mirrors
fusion_claims ADP handling invisible bindings key off
fusion_claims ADP handling - invisible bindings key off
the computed x_fc_workflow_stage selector. -->
<xpath expr="//header" position="inside">
<field name="x_fc_workflow_stage" widget="statusbar"
@@ -80,7 +80,7 @@
string="Accept Parts" type="object"
class="btn-primary" icon="fa-check"
invisible="x_fc_workflow_stage not in ('inspecting', 'accept_parts')"
help="Parts pass inspection ready for assignment."/>
help="Parts pass inspection - ready for assignment."/>
<button name="action_fp_assign_to_me"
string="Assign To Me &amp; Release" type="object"
@@ -101,7 +101,7 @@
help="Close the open delivery record(s) and fire auto-invoice per strategy."/>
</xpath>
<!-- Workflow stage banner sits ABOVE the form header so it's
<!-- Workflow stage banner - sits ABOVE the form header so it's
the first thing users see, matches the Account Hold banner.
Hidden for terminal states (invoicing/paid/complete/cancelled)
and the initial draft so it only shows when there's an