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

@@ -11,8 +11,8 @@ from odoo.addons.fusion_plating.models._fp_uom_selection import FP_UOM_SELECTION
class FpChemical(models.Model):
"""Physical chemical container in the shop's chemical inventory.
A chemical record represents a managed container drum, tote, jug,
cylinder of a specific product, stored in a specific facility and
A chemical record represents a managed container - drum, tote, jug,
cylinder - of a specific product, stored in a specific facility and
location, with on-hand quantity and reorder thresholds. It links to the
Safety Data Sheet that governs handling, and may optionally link to the
Odoo product/stock record when the same chemistry is also tracked as
@@ -23,7 +23,7 @@ class FpChemical(models.Model):
a future workflow can warn on co-located storage.
"""
_name = 'fusion.plating.chemical'
_description = 'Fusion Plating Chemical'
_description = 'Fusion Plating - Chemical'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'name'
@@ -60,7 +60,7 @@ class FpChemical(models.Model):
container_uom = fields.Selection(
FP_UOM_SELECTION,
string='Container UoM',
help='Unit of measure for the container size pick from the '
help='Unit of measure for the container size - pick from the '
'curated list to keep inventory consistent (L, kg, lb, gal).',
)
quantity_on_hand = fields.Float(

View File

@@ -12,7 +12,7 @@ class FpExposureMonitoring(models.Model):
"""An exposure monitoring sample.
A monitoring event captures one measurement of a worker's or area's
exposure to a hazardous agent air contaminant, biological marker,
exposure to a hazardous agent - air contaminant, biological marker,
noise or vibration. The result is compared against an Occupational
Exposure Limit (OEL), most commonly the time-weighted average (TWA)
or short-term exposure limit (STEL) published by the relevant
@@ -23,7 +23,7 @@ class FpExposureMonitoring(models.Model):
an early warning when controls need to be tightened.
"""
_name = 'fusion.plating.exposure.monitoring'
_description = 'Fusion Plating Exposure Monitoring'
_description = 'Fusion Plating - Exposure Monitoring'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'sample_date desc, id desc'
_rec_name = 'name'

View File

@@ -20,7 +20,7 @@ class FpIncident(models.Model):
and whether the form has actually been filed.
"""
_name = 'fusion.plating.incident'
_description = 'Fusion Plating Incident'
_description = 'Fusion Plating - Incident'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'incident_date desc, id desc'
_rec_name = 'name'

View File

@@ -20,7 +20,7 @@ class FpJhsc(models.Model):
members plus the specific worker and management representative subsets.
"""
_name = 'fusion.plating.jhsc'
_description = 'Fusion Plating JHSC'
_description = 'Fusion Plating - JHSC'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'name'

View File

@@ -15,7 +15,7 @@ class FpJhscMeeting(models.Model):
meetings still need minutes posted.
"""
_name = 'fusion.plating.jhsc.meeting'
_description = 'Fusion Plating JHSC Meeting'
_description = 'Fusion Plating - JHSC Meeting'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'meeting_date desc, id desc'
_rec_name = 'name'

View File

@@ -9,8 +9,8 @@ from odoo import api, fields, models
class FpPpeIssuance(models.Model):
"""Per-employee Personal Protective Equipment issuance log.
Each record captures one issuance of a piece of PPE respirator,
gloves, apron, face shield to an employee, with the size, quantity,
Each record captures one issuance of a piece of PPE - respirator,
gloves, apron, face shield - to an employee, with the size, quantity,
issue date and the date the equipment is next due for replacement.
A historical PPE log demonstrates that the employer is providing
@@ -18,7 +18,7 @@ class FpPpeIssuance(models.Model):
most occupational health and safety regulations.
"""
_name = 'fusion.plating.ppe.issuance'
_description = 'Fusion Plating PPE Issuance'
_description = 'Fusion Plating - PPE Issuance'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'issue_date desc, id desc'
_rec_name = 'display_name'
@@ -89,4 +89,4 @@ class FpPpeIssuance(models.Model):
parts.append(ppe_label.get(rec.ppe_type, rec.ppe_type))
if rec.issue_date:
parts.append(fields.Date.to_string(rec.issue_date))
rec.display_name = ' '.join(parts) if parts else 'PPE Issuance'
rec.display_name = ' - '.join(parts) if parts else 'PPE Issuance'

View File

@@ -15,14 +15,14 @@ class FpSds(models.Model):
manufacturer that describes the hazards, handling, storage, exposure
controls and emergency information for a product. Under the WHMIS 2015 /
GHS framework an SDS is considered current for three years from its
issue date after which a refresh from the supplier is required.
issue date - after which a refresh from the supplier is required.
Each SDS in the library carries supplier metadata, hazard classification,
GHS pictogram codes, language coverage and a link to the original PDF
via ir.attachment.
"""
_name = 'fusion.plating.sds'
_description = 'Fusion Plating Safety Data Sheet'
_description = 'Fusion Plating - Safety Data Sheet'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'product_name, version desc, issue_date desc'
_rec_name = 'name'

View File

@@ -19,7 +19,7 @@ class FpTrainingRecord(models.Model):
queried at a glance.
"""
_name = 'fusion.plating.training.record'
_description = 'Fusion Plating Training Record'
_description = 'Fusion Plating - Training Record'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'completion_date desc, id desc'
_rec_name = 'display_name'
@@ -123,4 +123,4 @@ class FpTrainingRecord(models.Model):
parts.append(rec.training_type_id.name)
if rec.completion_date:
parts.append(fields.Date.to_string(rec.completion_date))
rec.display_name = ' '.join(parts) if parts else 'Training Record'
rec.display_name = ' - '.join(parts) if parts else 'Training Record'

View File

@@ -9,8 +9,8 @@ from odoo import fields, models
class FpTrainingType(models.Model):
"""Master catalogue of training courses required in the shop.
A training type defines a class of certification WHMIS 2015, TDG Road,
Standard First Aid / CPR, LOTO, Confined Space together with how long
A training type defines a class of certification - WHMIS 2015, TDG Road,
Standard First Aid / CPR, LOTO, Confined Space - together with how long
a completion remains valid before retraining is required. The validity
window drives the per-employee training record's automatic expiry.
@@ -18,7 +18,7 @@ class FpTrainingType(models.Model):
packs may add more.
"""
_name = 'fusion.plating.training.type'
_description = 'Fusion Plating Training Type'
_description = 'Fusion Plating - Training Type'
_order = 'category, name'
name = fields.Char(