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>
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
# Part of the Fusion Plating product family.
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class FpFair(models.Model):
|
|
"""Aerospace extension to the quality FAIR model.
|
|
|
|
Adds the AS9102 form 1/2/3 attachment slots and the customer-approval
|
|
signature block that aerospace customers routinely require on top of
|
|
the generic first-article report.
|
|
"""
|
|
_inherit = 'fusion.plating.fair'
|
|
|
|
x_fc_as9102_form1 = fields.Binary(
|
|
string='AS9102 Form 1 (Part Accountability)',
|
|
help='Scanned / generated copy of AS9102 Form 1 - part '
|
|
'accountability header.',
|
|
)
|
|
x_fc_as9102_form1_filename = fields.Char(string='Form 1 Filename')
|
|
|
|
x_fc_as9102_form2 = fields.Binary(
|
|
string='AS9102 Form 2 (Product Accountability)',
|
|
help='Scanned / generated copy of AS9102 Form 2 - product '
|
|
'accountability, raw material / process / inspection records.',
|
|
)
|
|
x_fc_as9102_form2_filename = fields.Char(string='Form 2 Filename')
|
|
|
|
x_fc_as9102_form3 = fields.Binary(
|
|
string='AS9102 Form 3 (Characteristic Accountability)',
|
|
help='Scanned / generated copy of AS9102 Form 3 - characteristic '
|
|
'accountability, verification, and compatibility evaluation.',
|
|
)
|
|
x_fc_as9102_form3_filename = fields.Char(string='Form 3 Filename')
|
|
|
|
x_fc_drawing_revision = fields.Char(
|
|
string='Drawing Revision',
|
|
tracking=True,
|
|
help='Customer drawing revision this FAIR is against - must match '
|
|
'the revision shipped to the customer.',
|
|
)
|
|
x_fc_customer_approval_id = fields.Many2one(
|
|
'res.users',
|
|
string='Customer Approver',
|
|
tracking=True,
|
|
help='User who recorded the customer-side approval of this FAIR.',
|
|
)
|
|
x_fc_customer_approval_date = fields.Date(
|
|
string='Customer Approval Date',
|
|
tracking=True,
|
|
)
|