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

@@ -58,7 +58,7 @@ class TestActionIssueGates(TransactionCase):
# ---- spec_reference is OPTIONAL (client request 2026-05-28) ----
def test_no_block_on_missing_spec_reference(self):
"""Spec Reference no longer gates issuance the customer-facing
"""Spec Reference no longer gates issuance - the customer-facing
description now serves as the cert's spec/certificate info. A
cert with everything else present must issue even with a blank
spec_reference."""
@@ -124,7 +124,7 @@ class TestActionIssueGates(TransactionCase):
def test_blocks_thickness_report_with_no_data(self):
"""A thickness_report cert with zero readings and no Fischerscope
PDF is empty paper must block at issue."""
PDF is empty paper - must block at issue."""
cert = self._make_cert(certificate_type='thickness_report')
with self.assertRaises(UserError) as exc:
cert.action_issue()
@@ -141,7 +141,7 @@ class TestActionIssueGates(TransactionCase):
def test_coc_does_not_require_thickness_data_by_default(self):
"""Commercial CoC (no strict_thickness flag) should still pass
even without readings only thickness_report type is gated."""
even without readings - only thickness_report type is gated."""
cert = self._make_cert(certificate_type='coc')
cert.action_issue()
self.assertEqual(cert.state, 'issued')

View File

@@ -3,7 +3,7 @@
# License OPL-1 (Odoo Proprietary License v1.0)
#
# Unit tests for the Fischerscope thickness-report parser.
# Pure-Python tests no Odoo DB needed. Builds synthetic .docx files
# Pure-Python tests - no Odoo DB needed. Builds synthetic .docx files
# matching the real XDAL 600 export layout and verifies extraction.
import io
@@ -26,11 +26,11 @@ class TestFischerscopeParser(TransactionCase):
def setUpClass(cls):
super().setUpClass()
try:
import docx # python-docx required for tests
import docx # python-docx - required for tests
cls.docx = docx
except ImportError:
cls.docx = None
# Resolve the parser by absolute path at first use relative
# Resolve the parser by absolute path at first use - relative
# `from ..lib import` at module top trips the test loader's
# partially-initialised-package check.
from odoo.addons.fusion_plating_certificates.lib import (