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:
@@ -4,14 +4,14 @@
|
||||
# Part of the Fusion Plating product family.
|
||||
|
||||
{
|
||||
'name': 'Fusion Plating — Aerospace (AS9100 + Nadcap)',
|
||||
'name': 'Fusion Plating - Aerospace (AS9100 + Nadcap)',
|
||||
'version': '19.0.1.1.2',
|
||||
'category': 'Manufacturing/Plating',
|
||||
'summary': 'Aerospace industry pack: AS9100 Rev D clause library, Nadcap AC7108 '
|
||||
'audits, counterfeit parts prevention, config management, risk register, '
|
||||
'FAIR/AS9102 extensions, industry spec library (AMS, ASTM, MIL, BAC).',
|
||||
'description': """
|
||||
Fusion Plating — Aerospace (AS9100 + Nadcap AC7108)
|
||||
Fusion Plating - Aerospace (AS9100 + Nadcap AC7108)
|
||||
====================================================
|
||||
|
||||
Part of the Fusion Plating product family by Nexa Systems Inc.
|
||||
@@ -24,7 +24,7 @@ top of the generic QMS.
|
||||
Records added
|
||||
-------------
|
||||
* AS9100 Rev D clause catalog (hierarchical, seeded with the main
|
||||
clauses 4 through 10 plus the aerospace-critical 8.1.1–8.1.4 family)
|
||||
clauses 4 through 10 plus the aerospace-critical 8.1.1-8.1.4 family)
|
||||
* Nadcap AC7108 audit records (PRI-assigned auditors, merit/NCR counts,
|
||||
accreditation start/end, checklist selection covering AC7108 base and
|
||||
slash sheets 10/11/12/13/14)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
Part of the Fusion Plating product family.
|
||||
|
||||
Seed AS9100 Rev D clause hierarchy. Only the main top-level clauses
|
||||
(4–10) and the aerospace-critical 8.1.x family are included — a shop
|
||||
(4-10) and the aerospace-critical 8.1.x family are included - a shop
|
||||
can extend this with the finer-grained sub-clauses via user data.
|
||||
-->
|
||||
<odoo noupdate="1">
|
||||
@@ -115,7 +115,7 @@
|
||||
<field name="standard">as9100d</field>
|
||||
<field name="category">operation</field>
|
||||
<field name="parent_id" ref="as9100_clause_8_2"/>
|
||||
<field name="description" type="html"><p>Review of requirements for products and services — ensuring the organization's ability to meet requirements before committing to supply. Handling of enquiries, contracts or order handling, customer feedback including complaints, and specific requirements for contingency actions.</p></field>
|
||||
<field name="description" type="html"><p>Review of requirements for products and services - ensuring the organization's ability to meet requirements before committing to supply. Handling of enquiries, contracts or order handling, customer feedback including complaints, and specific requirements for contingency actions.</p></field>
|
||||
</record>
|
||||
|
||||
<record id="as9100_clause_8_3" model="fusion.plating.as9100.clause">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
-->
|
||||
<odoo noupdate="1">
|
||||
|
||||
<!-- ===== AMS 2404 — Electroless Nickel Plating ===== -->
|
||||
<!-- ===== AMS 2404 - Electroless Nickel Plating ===== -->
|
||||
<record id="spec_ams_2404" model="fusion.plating.customer.spec">
|
||||
<field name="code">AMS 2404</field>
|
||||
<field name="name">Electroless Nickel Plating</field>
|
||||
@@ -26,7 +26,7 @@
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== ASTM B733 — Autocatalytic (Electroless) Nickel-Phosphorus Coatings ===== -->
|
||||
<!-- ===== ASTM B733 - Autocatalytic (Electroless) Nickel-Phosphorus Coatings ===== -->
|
||||
<record id="spec_astm_b733" model="fusion.plating.customer.spec">
|
||||
<field name="code">ASTM B733</field>
|
||||
<field name="name">Autocatalytic (Electroless) Nickel-Phosphorus Coatings</field>
|
||||
@@ -40,7 +40,7 @@
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== MIL-C-26074 — Electroless Nickel Coatings ===== -->
|
||||
<!-- ===== MIL-C-26074 - Electroless Nickel Coatings ===== -->
|
||||
<record id="spec_mil_c_26074" model="fusion.plating.customer.spec">
|
||||
<field name="code">MIL-C-26074</field>
|
||||
<field name="name">Electroless Nickel Coatings</field>
|
||||
@@ -54,7 +54,7 @@
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== MIL-A-8625 — Anodic Coatings for Aluminum ===== -->
|
||||
<!-- ===== MIL-A-8625 - Anodic Coatings for Aluminum ===== -->
|
||||
<record id="spec_mil_a_8625" model="fusion.plating.customer.spec">
|
||||
<field name="code">MIL-A-8625</field>
|
||||
<field name="name">Anodic Coatings for Aluminum and Aluminum Alloys</field>
|
||||
@@ -70,7 +70,7 @@
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== QQ-C-320 — Chromium Plating (Electrodeposited) ===== -->
|
||||
<!-- ===== QQ-C-320 - Chromium Plating (Electrodeposited) ===== -->
|
||||
<record id="spec_qq_c_320" model="fusion.plating.customer.spec">
|
||||
<field name="code">QQ-C-320</field>
|
||||
<field name="name">Chromium Plating (Electrodeposited)</field>
|
||||
@@ -84,7 +84,7 @@
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== MIL-DTL-13924 — Black Oxide Coating on Ferrous Metals ===== -->
|
||||
<!-- ===== MIL-DTL-13924 - Black Oxide Coating on Ferrous Metals ===== -->
|
||||
<record id="spec_mil_dtl_13924" model="fusion.plating.customer.spec">
|
||||
<field name="code">MIL-DTL-13924</field>
|
||||
<field name="name">Black Oxide Coating on Ferrous Metals</field>
|
||||
@@ -97,7 +97,7 @@
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== AMS 2700 — Passivation of Corrosion-Resistant Steels ===== -->
|
||||
<!-- ===== AMS 2700 - Passivation of Corrosion-Resistant Steels ===== -->
|
||||
<record id="spec_ams_2700" model="fusion.plating.customer.spec">
|
||||
<field name="code">AMS 2700</field>
|
||||
<field name="name">Passivation of Corrosion-Resistant Steels</field>
|
||||
@@ -105,7 +105,7 @@
|
||||
<field name="x_fc_is_aerospace" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== AMS 2759/9 — Hydrogen Embrittlement Relief Bake ===== -->
|
||||
<!-- ===== AMS 2759/9 - Hydrogen Embrittlement Relief Bake ===== -->
|
||||
<record id="spec_ams_2759" model="fusion.plating.customer.spec">
|
||||
<field name="code">AMS 2759/9</field>
|
||||
<field name="name">Hydrogen Embrittlement Relief (Baking) of Steel Parts</field>
|
||||
@@ -113,7 +113,7 @@
|
||||
<field name="x_fc_is_aerospace" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== AMS-QQ-P-416 — Cadmium Plating (Electrodeposited) ===== -->
|
||||
<!-- ===== AMS-QQ-P-416 - Cadmium Plating (Electrodeposited) ===== -->
|
||||
<record id="spec_ams_qq_p_416" model="fusion.plating.customer.spec">
|
||||
<field name="code">AMS-QQ-P-416</field>
|
||||
<field name="name">Cadmium Plating (Electrodeposited)</field>
|
||||
@@ -123,10 +123,10 @@
|
||||
<field name="x_fc_requires_first_article" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== BAC 5709 — Boeing Electroless Nickel Plating ===== -->
|
||||
<!-- ===== BAC 5709 - Boeing Electroless Nickel Plating ===== -->
|
||||
<record id="spec_bac_5709" model="fusion.plating.customer.spec">
|
||||
<field name="code">BAC 5709</field>
|
||||
<field name="name">Boeing — Electroless Nickel Plating</field>
|
||||
<field name="name">Boeing - Electroless Nickel Plating</field>
|
||||
<field name="spec_type">industry</field>
|
||||
<field name="x_fc_is_aerospace" eval="True"/>
|
||||
<field name="x_fc_nadcap_required" eval="True"/>
|
||||
@@ -138,7 +138,7 @@
|
||||
])]"/>
|
||||
</record>
|
||||
|
||||
<!-- ===== PRI AS7108 — Nadcap Chemical Processing Accreditation ===== -->
|
||||
<!-- ===== PRI AS7108 - Nadcap Chemical Processing Accreditation ===== -->
|
||||
<record id="spec_pri_as7108" model="fusion.plating.customer.spec">
|
||||
<field name="code">PRI AS7108</field>
|
||||
<field name="name">Nadcap Chemical Processing Accreditation</field>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2026 Nexa Systems Inc. — Demo data for Fusion Plating Aerospace -->
|
||||
<!-- Copyright 2026 Nexa Systems Inc. - Demo data for Fusion Plating Aerospace -->
|
||||
<odoo noupdate="1">
|
||||
|
||||
<!-- ════════════════════════════════════════════════════════════════
|
||||
Nadcap AC7108 Audits
|
||||
════════════════════════════════════════════════════════════════ -->
|
||||
|
||||
<!-- 1. Scheduled audit — electroless nickel checklist -->
|
||||
<!-- 1. Scheduled audit - electroless nickel checklist -->
|
||||
<record id="demo_nadcap_audit_scheduled" model="fusion.plating.nadcap.audit">
|
||||
<field name="name">NADCAP-DEMO-001</field>
|
||||
<field name="audit_date" eval="(DateTime.today() + timedelta(days=45)).strftime('%Y-%m-%d')"/>
|
||||
@@ -17,7 +17,7 @@
|
||||
<field name="notes" type="html"><p>Scheduled electroless nickel slash-sheet audit for Q3 cycle.</p></field>
|
||||
</record>
|
||||
|
||||
<!-- 2. In-progress audit — chrome plating checklist -->
|
||||
<!-- 2. In-progress audit - chrome plating checklist -->
|
||||
<record id="demo_nadcap_audit_in_progress" model="fusion.plating.nadcap.audit">
|
||||
<field name="name">NADCAP-DEMO-002</field>
|
||||
<field name="audit_date" eval="(DateTime.today() - timedelta(days=3)).strftime('%Y-%m-%d')"/>
|
||||
@@ -28,7 +28,7 @@
|
||||
<field name="notes" type="html"><p>Chrome plating audit currently underway. Day 2 of on-site review.</p></field>
|
||||
</record>
|
||||
|
||||
<!-- 3. Closed audit — base checklist, accredited, 2 merits, 0 NCRs -->
|
||||
<!-- 3. Closed audit - base checklist, accredited, 2 merits, 0 NCRs -->
|
||||
<record id="demo_nadcap_audit_closed" model="fusion.plating.nadcap.audit">
|
||||
<field name="name">NADCAP-DEMO-003</field>
|
||||
<field name="audit_date" eval="(DateTime.today() - timedelta(days=120)).strftime('%Y-%m-%d')"/>
|
||||
@@ -48,11 +48,11 @@
|
||||
Risk Register Entries
|
||||
════════════════════════════════════════════════════════════════ -->
|
||||
|
||||
<!-- 1. Operational risk — identified -->
|
||||
<!-- 1. Operational risk - identified -->
|
||||
<record id="demo_risk_operational" model="fusion.plating.risk">
|
||||
<field name="name">RISK-DEMO-001</field>
|
||||
<field name="title">Tank temperature controller failure</field>
|
||||
<field name="description" type="html"><p>Single-point failure risk on Line 2 EN tank — temperature controller is end-of-life with no redundancy.</p></field>
|
||||
<field name="description" type="html"><p>Single-point failure risk on Line 2 EN tank - temperature controller is end-of-life with no redundancy.</p></field>
|
||||
<field name="category">operational</field>
|
||||
<field name="likelihood">3</field>
|
||||
<field name="impact">4</field>
|
||||
@@ -60,7 +60,7 @@
|
||||
<field name="review_date" eval="(DateTime.today() + timedelta(days=30)).strftime('%Y-%m-%d')"/>
|
||||
</record>
|
||||
|
||||
<!-- 2. Supply chain risk — assessed -->
|
||||
<!-- 2. Supply chain risk - assessed -->
|
||||
<record id="demo_risk_supply_chain" model="fusion.plating.risk">
|
||||
<field name="name">RISK-DEMO-002</field>
|
||||
<field name="title">Single-source nickel sulphamate supply</field>
|
||||
@@ -73,7 +73,7 @@
|
||||
<field name="review_date" eval="(DateTime.today() + timedelta(days=60)).strftime('%Y-%m-%d')"/>
|
||||
</record>
|
||||
|
||||
<!-- 3. Quality risk — treated -->
|
||||
<!-- 3. Quality risk - treated -->
|
||||
<record id="demo_risk_quality" model="fusion.plating.risk">
|
||||
<field name="name">RISK-DEMO-003</field>
|
||||
<field name="title">Thickness measurement repeatability</field>
|
||||
@@ -86,7 +86,7 @@
|
||||
<field name="review_date" eval="(DateTime.today() + timedelta(days=14)).strftime('%Y-%m-%d')"/>
|
||||
</record>
|
||||
|
||||
<!-- 4. Customer risk — monitored -->
|
||||
<!-- 4. Customer risk - monitored -->
|
||||
<record id="demo_risk_customer" model="fusion.plating.risk">
|
||||
<field name="name">RISK-DEMO-004</field>
|
||||
<field name="title">Prime OEM contract renewal uncertainty</field>
|
||||
@@ -111,9 +111,9 @@
|
||||
<field name="current_revision">C</field>
|
||||
<field name="approval_date" eval="(DateTime.today() - timedelta(days=60)).strftime('%Y-%m-%d')"/>
|
||||
<field name="change_history" type="html">
|
||||
<p><strong>Rev C</strong> — Updated rinse-water conductivity limits per customer spec.<br/>
|
||||
<strong>Rev B</strong> — Added mid-coat thickness checkpoint.<br/>
|
||||
<strong>Rev A</strong> — Initial baseline release.</p>
|
||||
<p><strong>Rev C</strong> - Updated rinse-water conductivity limits per customer spec.<br/>
|
||||
<strong>Rev B</strong> - Added mid-coat thickness checkpoint.<br/>
|
||||
<strong>Rev A</strong> - Initial baseline release.</p>
|
||||
</field>
|
||||
<field name="notes" type="html"><p>Covers AMS 2404 and MIL-C-26074 requirements for medium-phosphorus EN deposits.</p></field>
|
||||
</record>
|
||||
@@ -126,8 +126,8 @@
|
||||
<field name="current_revision">B</field>
|
||||
<field name="approval_date" eval="(DateTime.today() - timedelta(days=30)).strftime('%Y-%m-%d')"/>
|
||||
<field name="change_history" type="html">
|
||||
<p><strong>Rev B</strong> — Revised current-density parameters for thin hard chrome.<br/>
|
||||
<strong>Rev A</strong> — Initial baseline release.</p>
|
||||
<p><strong>Rev B</strong> - Revised current-density parameters for thin hard chrome.<br/>
|
||||
<strong>Rev A</strong> - Initial baseline release.</p>
|
||||
</field>
|
||||
<field name="notes" type="html"><p>Covers QQ-C-320 and AMS 2460 requirements for hard chrome deposits on aerospace components.</p></field>
|
||||
</record>
|
||||
|
||||
@@ -15,7 +15,7 @@ class FpAs9100Clause(models.Model):
|
||||
the specific paragraph of the standard it satisfies.
|
||||
"""
|
||||
_name = 'fusion.plating.as9100.clause'
|
||||
_description = 'Fusion Plating — AS9100 Clause'
|
||||
_description = 'Fusion Plating - AS9100 Clause'
|
||||
_order = 'standard, code, id'
|
||||
_parent_store = True
|
||||
_rec_name = 'display_name'
|
||||
@@ -93,4 +93,4 @@ class FpAs9100Clause(models.Model):
|
||||
parts.append(rec.code)
|
||||
if rec.name:
|
||||
parts.append(rec.name)
|
||||
rec.display_name = ' — '.join(parts) if parts else ''
|
||||
rec.display_name = ' - '.join(parts) if parts else ''
|
||||
|
||||
@@ -15,7 +15,7 @@ class FpConfigItem(models.Model):
|
||||
revision, and a change history log for traceability.
|
||||
"""
|
||||
_name = 'fusion.plating.config.item'
|
||||
_description = 'Fusion Plating — Configuration Management Item'
|
||||
_description = 'Fusion Plating - Configuration Management Item'
|
||||
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
_order = 'name, id'
|
||||
|
||||
@@ -37,7 +37,7 @@ class FpConfigItem(models.Model):
|
||||
current_revision = fields.Char(
|
||||
string='Current Revision',
|
||||
tracking=True,
|
||||
help='The revision currently in effect — usually the most '
|
||||
help='The revision currently in effect - usually the most '
|
||||
'recently approved change.',
|
||||
)
|
||||
approved_by_id = fields.Many2one(
|
||||
|
||||
@@ -14,7 +14,7 @@ class FpCounterfeitPrevention(models.Model):
|
||||
chain. Required by AS9100 §8.1.4 Counterfeit Parts Prevention.
|
||||
"""
|
||||
_name = 'fusion.plating.counterfeit.prevention'
|
||||
_description = 'Fusion Plating — Counterfeit Parts Prevention Log'
|
||||
_description = 'Fusion Plating - Counterfeit Parts Prevention Log'
|
||||
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
_order = 'incident_date desc, id desc'
|
||||
|
||||
|
||||
@@ -17,21 +17,21 @@ class FpFair(models.Model):
|
||||
|
||||
x_fc_as9102_form1 = fields.Binary(
|
||||
string='AS9102 Form 1 (Part Accountability)',
|
||||
help='Scanned / generated copy of AS9102 Form 1 — part '
|
||||
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 '
|
||||
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 '
|
||||
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')
|
||||
@@ -39,7 +39,7 @@ class FpFair(models.Model):
|
||||
x_fc_drawing_revision = fields.Char(
|
||||
string='Drawing Revision',
|
||||
tracking=True,
|
||||
help='Customer drawing revision this FAIR is against — must match '
|
||||
help='Customer drawing revision this FAIR is against - must match '
|
||||
'the revision shipped to the customer.',
|
||||
)
|
||||
x_fc_customer_approval_id = fields.Many2one(
|
||||
|
||||
@@ -16,7 +16,7 @@ class FpNadcapAudit(models.Model):
|
||||
merit/NCR tracking that don't map cleanly to the generic audit flow.
|
||||
"""
|
||||
_name = 'fusion.plating.nadcap.audit'
|
||||
_description = 'Fusion Plating — Nadcap AC7108 Audit'
|
||||
_description = 'Fusion Plating - Nadcap AC7108 Audit'
|
||||
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
_order = 'audit_date desc, id desc'
|
||||
|
||||
@@ -45,12 +45,12 @@ class FpNadcapAudit(models.Model):
|
||||
)
|
||||
checklist = fields.Selection(
|
||||
[
|
||||
('ac7108_base', 'AC7108 — Base Checklist'),
|
||||
('ac7108_10_electroless', 'AC7108/10 — Electroless Nickel'),
|
||||
('ac7108_11_brush', 'AC7108/11 — Brush Plating'),
|
||||
('ac7108_12_chrome', 'AC7108/12 — Chromium Plating'),
|
||||
('ac7108_13_anodize', 'AC7108/13 — Anodize'),
|
||||
('ac7108_14_conv', 'AC7108/14 — Conversion Coating'),
|
||||
('ac7108_base', 'AC7108 - Base Checklist'),
|
||||
('ac7108_10_electroless', 'AC7108/10 - Electroless Nickel'),
|
||||
('ac7108_11_brush', 'AC7108/11 - Brush Plating'),
|
||||
('ac7108_12_chrome', 'AC7108/12 - Chromium Plating'),
|
||||
('ac7108_13_anodize', 'AC7108/13 - Anodize'),
|
||||
('ac7108_14_conv', 'AC7108/14 - Conversion Coating'),
|
||||
],
|
||||
string='Checklist',
|
||||
default='ac7108_base',
|
||||
|
||||
@@ -10,12 +10,12 @@ class FpRisk(models.Model):
|
||||
"""Risk register entry.
|
||||
|
||||
Implements the operational risk management requirement from AS9100
|
||||
Rev D §8.1.1. Each risk gets scored on a 1–5 likelihood and 1–5
|
||||
Rev D §8.1.1. Each risk gets scored on a 1-5 likelihood and 1-5
|
||||
impact scale; the multiplicative score drives the level classification
|
||||
(low / medium / high / critical) used for escalation and reporting.
|
||||
"""
|
||||
_name = 'fusion.plating.risk'
|
||||
_description = 'Fusion Plating — Risk Register Entry'
|
||||
_description = 'Fusion Plating - Risk Register Entry'
|
||||
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||
_order = 'risk_score desc, id desc'
|
||||
|
||||
@@ -53,11 +53,11 @@ class FpRisk(models.Model):
|
||||
)
|
||||
likelihood = fields.Selection(
|
||||
[
|
||||
('1', '1 — Very Low'),
|
||||
('2', '2 — Low'),
|
||||
('3', '3 — Medium'),
|
||||
('4', '4 — High'),
|
||||
('5', '5 — Very High'),
|
||||
('1', '1 - Very Low'),
|
||||
('2', '2 - Low'),
|
||||
('3', '3 - Medium'),
|
||||
('4', '4 - High'),
|
||||
('5', '5 - Very High'),
|
||||
],
|
||||
string='Likelihood',
|
||||
default='3',
|
||||
@@ -66,11 +66,11 @@ class FpRisk(models.Model):
|
||||
)
|
||||
impact = fields.Selection(
|
||||
[
|
||||
('1', '1 — Very Low'),
|
||||
('2', '2 — Low'),
|
||||
('3', '3 — Medium'),
|
||||
('4', '4 — High'),
|
||||
('5', '5 — Very High'),
|
||||
('1', '1 - Very Low'),
|
||||
('2', '2 - Low'),
|
||||
('3', '3 - Medium'),
|
||||
('4', '4 - High'),
|
||||
('5', '5 - Very High'),
|
||||
],
|
||||
string='Impact',
|
||||
default='3',
|
||||
@@ -81,7 +81,7 @@ class FpRisk(models.Model):
|
||||
string='Score',
|
||||
compute='_compute_risk_score',
|
||||
store=True,
|
||||
help='Likelihood × Impact (1–25).',
|
||||
help='Likelihood × Impact (1-25).',
|
||||
)
|
||||
risk_level = fields.Selection(
|
||||
[
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// =============================================================================
|
||||
// Fusion Plating — Aerospace pack styles
|
||||
// Fusion Plating - Aerospace pack styles
|
||||
// Copyright 2026 Nexa Systems Inc.
|
||||
// License OPL-1 (Odoo Proprietary License v1.0)
|
||||
//
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Local helper — tint a semantic colour against the surface.
|
||||
// Local helper - tint a semantic colour against the surface.
|
||||
// -----------------------------------------------------------------------------
|
||||
@mixin fp-aero-tint($color-var, $amount: 12%) {
|
||||
background-color: color-mix(in srgb, var(#{$color-var}) #{$amount}, transparent);
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Risk register card — severity-tinted callout on the risk form
|
||||
// Risk register card - severity-tinted callout on the risk form
|
||||
// -----------------------------------------------------------------------------
|
||||
.o_fp_risk_card {
|
||||
background-color: var(--o-view-background-color, var(--bs-body-bg));
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Nadcap badge — compact accreditation indicator on the audit form header
|
||||
// Nadcap badge - compact accreditation indicator on the audit form header
|
||||
// -----------------------------------------------------------------------------
|
||||
.o_fp_nadcap_badge {
|
||||
display: inline-block;
|
||||
@@ -82,7 +82,7 @@
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// AS9100 clause tree — subtle hierarchy cueing for nested clause codes
|
||||
// AS9100 clause tree - subtle hierarchy cueing for nested clause codes
|
||||
// -----------------------------------------------------------------------------
|
||||
.o_fp_as9100_tree {
|
||||
.o_data_row {
|
||||
@@ -102,7 +102,7 @@
|
||||
color: var(--bs-body-color);
|
||||
}
|
||||
|
||||
// Muted parent column — it's context, not the focus.
|
||||
// Muted parent column - it's context, not the focus.
|
||||
td[name="parent_id"] {
|
||||
color: var(--bs-secondary-color);
|
||||
}
|
||||
|
||||
@@ -19,19 +19,19 @@
|
||||
<xpath expr="//notebook" position="inside">
|
||||
<page string="AS9102 Forms" name="as9102_forms">
|
||||
<group>
|
||||
<group string="Form 1 — Part Accountability">
|
||||
<group string="Form 1 - Part Accountability">
|
||||
<field name="x_fc_as9102_form1"
|
||||
filename="x_fc_as9102_form1_filename"/>
|
||||
<field name="x_fc_as9102_form1_filename" invisible="1"/>
|
||||
</group>
|
||||
<group string="Form 2 — Product Accountability">
|
||||
<group string="Form 2 - Product Accountability">
|
||||
<field name="x_fc_as9102_form2"
|
||||
filename="x_fc_as9102_form2_filename"/>
|
||||
<field name="x_fc_as9102_form2_filename" invisible="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group string="Form 3 — Characteristic Accountability">
|
||||
<group string="Form 3 - Characteristic Accountability">
|
||||
<field name="x_fc_as9102_form3"
|
||||
filename="x_fc_as9102_form3_filename"/>
|
||||
<field name="x_fc_as9102_form3_filename" invisible="1"/>
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
-->
|
||||
<odoo>
|
||||
|
||||
<!-- Phase 1 — re-parented under Plating → Compliance hub. -->
|
||||
<!-- Phase D (perms v2) — QM-only under compliance hub. -->
|
||||
<!-- Phase 1 - re-parented under Plating → Compliance hub. -->
|
||||
<!-- Phase D (perms v2) - QM-only under compliance hub. -->
|
||||
<menuitem id="menu_fp_aerospace"
|
||||
name="Aerospace (AS9100 / Nadcap)"
|
||||
parent="fusion_plating.menu_fp_compliance_hub"
|
||||
|
||||
Reference in New Issue
Block a user