folder rename
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# -*- 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.',
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user