Files
Odoo-Modules/fusion_plating/fusion_plating_nuclear/models/fp_n299_level.py
gsinghpal 8c76a16366 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>
2026-06-05 00:16:19 -04:00

82 lines
2.6 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 FpN299Level(models.Model):
"""CSA N299 Quality Assurance Level.
CSA N299 is the Canadian Standards Association standard covering
quality assurance program requirements for items and services
supplied to nuclear power plants. It defines four levels of quality
programs keyed to the safety classification of the supplied item:
Level 1 - Safety-critical items (highest)
Level 2 - Safety-related items
Level 3 - Items important to safety
Level 4 - Commercial grade (lowest)
The level drives how long nuclear quality records must be retained
(life-of-plant on the highest levels, commercial norms on the lowest)
and how rigorous the supplier's quality program must be.
"""
_name = 'fusion.plating.n299.level'
_description = 'Fusion Plating - CSA N299 Quality Level'
_order = 'level_number, code'
name = fields.Char(
string='Level',
required=True,
translate=True,
)
code = fields.Char(
string='Code',
required=True,
help='Short identifier, e.g. N299_L1.',
)
level_number = fields.Integer(
string='Level Number',
required=True,
help='1 (highest, safety-critical) to 4 (commercial grade).',
)
description = fields.Text(
string='Description',
translate=True,
)
retention_years = fields.Integer(
string='Retention (Years)',
required=True,
default=40,
help='Default records-retention period for this level. Canadian nuclear '
'quality records are typically retained for 40 years or longer at '
'the highest levels - often "life of plant".',
)
safety_classification = fields.Selection(
[
('safety_critical', 'Safety-critical'),
('safety_related', 'Safety-related'),
('important_to_safety', 'Important to safety'),
('commercial_grade', 'Commercial grade'),
],
string='Safety Classification',
required=True,
default='safety_critical',
)
active = fields.Boolean(default=True)
_sql_constraints = [
(
'fp_n299_level_code_uniq',
'unique(code)',
'N299 level code must be unique.',
),
(
'fp_n299_level_number_uniq',
'unique(level_number)',
'N299 level number must be unique.',
),
]