On the sale.order and fp.job forms, the Holds/Checks/NCRs/CAPAs/RMAs quality smart buttons (and the SO WO button) now hide when their count is 0, so the row shows only quality work that exists. NCR and CAPA counts are re-scoped from customer-wide to order/job via a shared _fp_quality_ncr_ids() helper (NCRs reached through the order's RMAs + the order/job's holds), so each badge and the list its button opens always agree. Also aligned the job RMA button's list domain to its (already SO-scoped) count. Reverts the Sub-12 Phase D "always-visible (zero is OK)" choice back to the module's documented hide-at-zero convention. - fusion_plating_quality 19.0.8.1.0 -> 19.0.8.2.0 - fusion_plating_jobs 19.0.12.4.0 -> 19.0.12.5.0 Deployed + verified on entech (badge == helper across sampled SOs/jobs). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
141 lines
5.9 KiB
Python
141 lines
5.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.
|
|
|
|
{
|
|
'name': 'Fusion Plating — Quality (QMS)',
|
|
'version': '19.0.8.2.0',
|
|
'category': 'Manufacturing/Plating',
|
|
'summary': 'Native QMS for plating shops: NCR, CAPA, calibration, AVL, FAIR, '
|
|
'internal audits, customer specs, document control. CE + EE compatible.',
|
|
'description': """
|
|
Fusion Plating — Quality (QMS)
|
|
==============================
|
|
|
|
Part of the Fusion Plating product family by Nexa Systems Inc.
|
|
|
|
A complete, native Quality Management System layer for the Fusion Plating
|
|
core. Built to satisfy the paperwork side of running a plating / metal
|
|
finishing shop without forcing customers onto Odoo Enterprise or paid
|
|
add-ons.
|
|
|
|
This module is intentionally Community Edition compatible. It does NOT
|
|
depend on `quality`, `quality_control`, `documents`, or `sign`. Everything
|
|
is built natively on `mail.thread`, `mail.activity.mixin`, and standard
|
|
Odoo records.
|
|
|
|
Records included
|
|
----------------
|
|
* Non-Conformance Reports (NCR) — containment, disposition, MRB workflow
|
|
* Corrective & Preventive Actions (CAPA) — root cause, action plan,
|
|
effectiveness verification, NCR linkage
|
|
* Calibration Equipment register + individual calibration events with
|
|
pass / limited / fail and impact assessment
|
|
* Approved Vendor List (AVL) — supplier approval state, expiry,
|
|
scorecard rating
|
|
* Customer Specification library — industry, customer, and internal
|
|
specs (e.g. AMS 2404, ASTM B733, MIL-C-26074)
|
|
* Internal Audits — internal, customer, certification, supplier scope
|
|
* First Article Inspection Reports (FAIR) — per part / revision / customer
|
|
* Document Control — procedures, work instructions, forms, standards,
|
|
manuals with revision tracking and trained-user lists
|
|
|
|
Integration
|
|
-----------
|
|
* Reuses the core res.groups.privilege ACLs from fusion_plating
|
|
(operator, supervisor, manager, admin) — no new groups to manage
|
|
* Linked to facilities, baths, and process types from core
|
|
* Chatter on every record for full audit trail
|
|
* Sequence-numbered references for NCR, CAPA, FAIR, audits
|
|
|
|
Theme aware
|
|
-----------
|
|
SCSS uses Bootstrap CSS variables and color-mix() so cards, badges, and
|
|
overdue indicators render correctly in both light and dark mode without
|
|
any media-query overrides.
|
|
|
|
Copyright (c) 2026 Nexa Systems Inc. All rights reserved.
|
|
""",
|
|
'author': 'Nexa Systems Inc.',
|
|
'website': 'https://www.nexasystems.ca',
|
|
'maintainer': 'Nexa Systems Inc.',
|
|
'support': 'support@nexasystems.ca',
|
|
'license': 'OPL-1',
|
|
'price': 0.00,
|
|
'currency': 'CAD',
|
|
'depends': [
|
|
'fusion_plating',
|
|
'fusion_plating_configurator',
|
|
'fusion_plating_certificates', # fp.thickness.reading link from QC
|
|
'fusion_plating_shopfloor', # _fp_shopfloor_tokens.scss for QC tablet
|
|
'fusion_plating_receiving', # rma_id on fp.receiving (Sub 12 Phase A)
|
|
# NB: deliberately NOT depending on fusion_plating_jobs — it depends
|
|
# on us already (extends fusion.plating.quality.hold). Many2one('fp.job')
|
|
# on fp.rma is resolved by the registry once jobs loads after us.
|
|
'mail',
|
|
],
|
|
'data': [
|
|
'security/fp_quality_security.xml',
|
|
'security/ir.model.access.csv',
|
|
'data/fp_sequence_data.xml',
|
|
'data/fp_quality_hold_sequence_data.xml',
|
|
'data/fp_rma_sequence.xml',
|
|
'data/fp_quality_categorisation_data.xml',
|
|
'data/fp_qc_data.xml',
|
|
'views/fp_qc_template_views.xml',
|
|
'views/fp_quality_hold_views.xml',
|
|
'views/fp_ncr_views.xml',
|
|
'views/fp_capa_views.xml',
|
|
'views/fp_calibration_views.xml',
|
|
'views/fp_avl_views.xml',
|
|
'views/fp_customer_spec_views.xml',
|
|
'views/fp_process_node_inherit_views.xml',
|
|
'views/sale_order_views_inherit.xml',
|
|
'views/fp_part_catalog_views_inherit.xml',
|
|
'views/fp_direct_order_wizard_views_inherit.xml',
|
|
'views/fp_pricing_rule_views_inherit.xml',
|
|
'views/fp_audit_views.xml',
|
|
'views/fp_fair_views.xml',
|
|
'views/fp_doc_control_views.xml',
|
|
'views/res_partner_views.xml',
|
|
'views/res_partner_qc_views.xml',
|
|
'views/res_config_settings_views.xml',
|
|
'wizards/fp_contract_review_client_email_wizard_views.xml',
|
|
'views/fp_contract_review_views.xml',
|
|
'views/fp_part_catalog_views.xml',
|
|
'views/fp_quality_check_views.xml',
|
|
'views/fp_rma_views.xml',
|
|
'views/fp_quality_categorisation_views.xml',
|
|
'views/fp_quality_point_views.xml',
|
|
'views/fp_quality_smart_button_views.xml',
|
|
'views/fp_quality_dashboard_views.xml',
|
|
'reports/fp_contract_review_report.xml',
|
|
'reports/fp_contract_review_template.xml',
|
|
'views/fp_menu.xml',
|
|
],
|
|
'demo': [
|
|
'data/fp_demo_quality_data.xml',
|
|
],
|
|
'assets': {
|
|
'web.assets_backend': [
|
|
'fusion_plating_quality/static/src/scss/fusion_plating_quality.scss',
|
|
# Phase 2 (Sub 11) — QC tablet OWL relocated from bridge_mrp.
|
|
'fusion_plating_quality/static/src/scss/fp_qc_checklist.scss',
|
|
'fusion_plating_quality/static/src/xml/fp_qc_checklist.xml',
|
|
'fusion_plating_quality/static/src/js/fp_qc_checklist.js',
|
|
# Sub 12 Phase D — Unified Quality Dashboard.
|
|
'fusion_plating_quality/static/src/scss/fp_quality_dashboard.scss',
|
|
'fusion_plating_quality/static/src/xml/fp_quality_dashboard.xml',
|
|
'fusion_plating_quality/static/src/js/fp_quality_dashboard.js',
|
|
# Contract Review flow — forced redirect into QA-005 after
|
|
# an estimator creates a part under a toggle-on customer.
|
|
# Pairs with the bus.bus push in fp_part_catalog.py:create.
|
|
'fusion_plating_quality/static/src/js/contract_review_redirect.js',
|
|
],
|
|
},
|
|
'installable': True,
|
|
'application': False,
|
|
'auto_install': False,
|
|
}
|