Files
Odoo-Modules/fusion_plating/fusion_plating_quality/__manifest__.py
gsinghpal c9eb61ee0c feat(plating): hide quality smart buttons at zero + order-scope NCR/CAPA counts
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>
2026-06-04 20:36:54 -04:00

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,
}