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:
@@ -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(
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user