folder rename

This commit is contained in:
gsinghpal
2026-04-16 20:53:53 -04:00
parent 3f3ddcbab4
commit 7c7ef06057
634 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<record id="view_fp_as9100_clause_list" model="ir.ui.view">
<field name="name">fp.as9100.clause.list</field>
<field name="model">fusion.plating.as9100.clause</field>
<field name="arch" type="xml">
<list string="AS9100 Clauses" class="o_fp_as9100_tree">
<field name="code"/>
<field name="name"/>
<field name="standard" widget="badge"/>
<field name="category"/>
<field name="parent_id"/>
</list>
</field>
</record>
<record id="view_fp_as9100_clause_form" model="ir.ui.view">
<field name="name">fp.as9100.clause.form</field>
<field name="model">fusion.plating.as9100.clause</field>
<field name="arch" type="xml">
<form string="AS9100 Clause">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1><field name="name"/></h1>
</div>
<group>
<group>
<field name="code"/>
<field name="standard"/>
<field name="category"/>
</group>
<group>
<field name="parent_id"/>
<field name="active"/>
</group>
</group>
<notebook>
<page string="Description">
<field name="description"/>
</page>
<page string="Sub-clauses">
<field name="child_ids">
<list>
<field name="code"/>
<field name="name"/>
</list>
</field>
</page>
<page string="Notes">
<field name="notes"/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_fp_as9100_clause_search" model="ir.ui.view">
<field name="name">fp.as9100.clause.search</field>
<field name="model">fusion.plating.as9100.clause</field>
<field name="arch" type="xml">
<search string="AS9100 Clauses">
<field name="code"/>
<field name="name"/>
<separator/>
<filter string="AS9100D" name="as9100d" domain="[('standard','=','as9100d')]"/>
<filter string="ISO 9001:2015" name="iso9001" domain="[('standard','=','iso9001_2015')]"/>
<separator/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group>
<filter string="Standard" name="group_standard" context="{'group_by':'standard'}"/>
<filter string="Category" name="group_category" context="{'group_by':'category'}"/>
<filter string="Parent" name="group_parent" context="{'group_by':'parent_id'}"/>
</group>
</search>
</field>
</record>
<record id="action_fp_as9100_clause" model="ir.actions.act_window">
<field name="name">AS9100 Clauses</field>
<field name="res_model">fusion.plating.as9100.clause</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_fp_as9100_clause_search"/>
</record>
</odoo>

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<record id="view_fp_config_item_list" model="ir.ui.view">
<field name="name">fp.config.item.list</field>
<field name="model">fusion.plating.config.item</field>
<field name="arch" type="xml">
<list string="Configuration Items">
<field name="code"/>
<field name="name"/>
<field name="baseline_revision"/>
<field name="current_revision"/>
<field name="approved_by_id"/>
<field name="approval_date"/>
</list>
</field>
</record>
<record id="view_fp_config_item_form" model="ir.ui.view">
<field name="name">fp.config.item.form</field>
<field name="model">fusion.plating.config.item</field>
<field name="arch" type="xml">
<form string="Configuration Item">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1><field name="name"/></h1>
</div>
<group>
<group>
<field name="code"/>
<field name="baseline_revision"/>
<field name="current_revision"/>
</group>
<group>
<field name="approved_by_id"/>
<field name="approval_date"/>
<field name="active"/>
</group>
</group>
<notebook>
<page string="Change History">
<field name="change_history"/>
</page>
<page string="Notes">
<field name="notes"/>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</record>
<record id="view_fp_config_item_search" model="ir.ui.view">
<field name="name">fp.config.item.search</field>
<field name="model">fusion.plating.config.item</field>
<field name="arch" type="xml">
<search string="Configuration Items">
<field name="code"/>
<field name="name"/>
<field name="approved_by_id"/>
<separator/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group>
<filter string="Approver" name="group_approver" context="{'group_by':'approved_by_id'}"/>
</group>
</search>
</field>
</record>
<record id="action_fp_config_item" model="ir.actions.act_window">
<field name="name">Configuration Items</field>
<field name="res_model">fusion.plating.config.item</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_fp_config_item_search"/>
</record>
</odoo>

View File

@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<record id="view_fp_counterfeit_list" model="ir.ui.view">
<field name="name">fp.counterfeit.list</field>
<field name="model">fusion.plating.counterfeit.prevention</field>
<field name="arch" type="xml">
<list string="Counterfeit Parts Log">
<field name="name"/>
<field name="incident_date"/>
<field name="supplier_id"/>
<field name="part_number"/>
<field name="lot_serial"/>
<field name="disposition" widget="badge"
decoration-warning="disposition == 'investigation'"
decoration-danger="disposition == 'destroyed'"
decoration-info="disposition == 'returned'"/>
<field name="gidep_reported" widget="boolean"/>
</list>
</field>
</record>
<record id="view_fp_counterfeit_form" model="ir.ui.view">
<field name="name">fp.counterfeit.form</field>
<field name="model">fusion.plating.counterfeit.prevention</field>
<field name="arch" type="xml">
<form string="Counterfeit Prevention Log">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1><field name="name" readonly="1"/></h1>
</div>
<group>
<group>
<field name="incident_date"/>
<field name="supplier_id"/>
<field name="part_number"/>
<field name="lot_serial"/>
</group>
<group>
<field name="detection_method"/>
<field name="disposition"/>
<field name="gidep_reported"/>
</group>
</group>
<notebook>
<page string="Notes">
<field name="notes"/>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</record>
<record id="view_fp_counterfeit_search" model="ir.ui.view">
<field name="name">fp.counterfeit.search</field>
<field name="model">fusion.plating.counterfeit.prevention</field>
<field name="arch" type="xml">
<search string="Counterfeit Incidents">
<field name="name"/>
<field name="supplier_id"/>
<field name="part_number"/>
<separator/>
<filter string="Under Investigation" name="investigation" domain="[('disposition','=','investigation')]"/>
<filter string="Returned" name="returned" domain="[('disposition','=','returned')]"/>
<filter string="Destroyed" name="destroyed" domain="[('disposition','=','destroyed')]"/>
<separator/>
<filter string="GIDEP Reported" name="gidep" domain="[('gidep_reported','=',True)]"/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group>
<filter string="Supplier" name="group_supplier" context="{'group_by':'supplier_id'}"/>
<filter string="Disposition" name="group_disposition" context="{'group_by':'disposition'}"/>
</group>
</search>
</field>
</record>
<record id="action_fp_counterfeit" model="ir.actions.act_window">
<field name="name">Counterfeit Parts Log</field>
<field name="res_model">fusion.plating.counterfeit.prevention</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_fp_counterfeit_search"/>
</record>
</odoo>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<!--
Extend the quality customer-spec form with the aerospace flag
block. Sits below the existing "Applicable Processes" group so
aerospace-only users can flip the flag + link clauses without
touching the base metadata.
-->
<record id="view_fp_customer_spec_form_inherit_aerospace" model="ir.ui.view">
<field name="name">fp.customer.spec.form.inherit.aerospace</field>
<field name="model">fusion.plating.customer.spec</field>
<field name="inherit_id" ref="fusion_plating_quality.view_fp_customer_spec_form"/>
<field name="arch" type="xml">
<xpath expr="//group[@name='applicable_processes']" position="after">
<group string="Aerospace" name="aerospace">
<group>
<field name="x_fc_is_aerospace"/>
<field name="x_fc_nadcap_required"/>
<field name="x_fc_requires_first_article"/>
</group>
<group>
<field name="x_fc_pri_file_code"/>
<field name="x_fc_customer_approval_required"/>
</group>
</group>
<group string="AS9100 Clauses" name="as9100_clauses">
<field name="x_fc_as9100_clause_ids" widget="many2many_tags" nolabel="1"/>
</group>
</xpath>
</field>
</record>
<!-- Extend the list with a tiny aerospace indicator column. -->
<record id="view_fp_customer_spec_list_inherit_aerospace" model="ir.ui.view">
<field name="name">fp.customer.spec.list.inherit.aerospace</field>
<field name="model">fusion.plating.customer.spec</field>
<field name="inherit_id" ref="fusion_plating_quality.view_fp_customer_spec_list"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='spec_type']" position="after">
<field name="x_fc_is_aerospace" string="Aero" optional="show"/>
<field name="x_fc_nadcap_required" string="Nadcap" optional="hide"/>
</xpath>
</field>
</record>
<!-- Add aerospace filters to the spec search view. -->
<record id="view_fp_customer_spec_search_inherit_aerospace" model="ir.ui.view">
<field name="name">fp.customer.spec.search.inherit.aerospace</field>
<field name="model">fusion.plating.customer.spec</field>
<field name="inherit_id" ref="fusion_plating_quality.view_fp_customer_spec_search"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='internal']" position="after">
<separator/>
<filter string="Aerospace" name="aerospace"
domain="[('x_fc_is_aerospace','=',True)]"/>
<filter string="Nadcap Required" name="nadcap"
domain="[('x_fc_nadcap_required','=',True)]"/>
<filter string="FAI Required" name="fai_required"
domain="[('x_fc_requires_first_article','=',True)]"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<!--
Extend the quality FAIR form with the AS9102 form attachments
and customer-approval signature block. Added as a notebook page
so the base layout is untouched.
-->
<record id="view_fp_fair_form_inherit_aerospace" model="ir.ui.view">
<field name="name">fp.fair.form.inherit.aerospace</field>
<field name="model">fusion.plating.fair</field>
<field name="inherit_id" ref="fusion_plating_quality.view_fp_fair_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook" position="inside">
<page string="AS9102 Forms" name="as9102_forms">
<group>
<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">
<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">
<field name="x_fc_as9102_form3"
filename="x_fc_as9102_form3_filename"/>
<field name="x_fc_as9102_form3_filename" invisible="1"/>
</group>
<group string="Drawing &amp; Customer Approval">
<field name="x_fc_drawing_revision"/>
<field name="x_fc_customer_approval_id"/>
<field name="x_fc_customer_approval_date"/>
</group>
</group>
</page>
</xpath>
</field>
</record>
<!-- Drawing revision column on the list for quick scanning. -->
<record id="view_fp_fair_list_inherit_aerospace" model="ir.ui.view">
<field name="name">fp.fair.list.inherit.aerospace</field>
<field name="model">fusion.plating.fair</field>
<field name="inherit_id" ref="fusion_plating_quality.view_fp_fair_list"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='part_revision']" position="after">
<field name="x_fc_drawing_revision" string="Dwg Rev" optional="show"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<!-- ===== AEROSPACE (parent submenu under the Plating app) ===== -->
<menuitem id="menu_fp_aerospace"
name="Aerospace"
parent="fusion_plating.menu_fp_root"
sequence="60"
groups="fusion_plating.group_fusion_plating_operator"/>
<menuitem id="menu_fp_aerospace_as9100"
name="AS9100 Clauses"
parent="menu_fp_aerospace"
action="action_fp_as9100_clause"
sequence="10"/>
<menuitem id="menu_fp_aerospace_nadcap"
name="Nadcap Audits"
parent="menu_fp_aerospace"
action="action_fp_nadcap_audit"
sequence="20"/>
<menuitem id="menu_fp_aerospace_counterfeit"
name="Counterfeit Log"
parent="menu_fp_aerospace"
action="action_fp_counterfeit"
sequence="30"/>
<menuitem id="menu_fp_aerospace_config_items"
name="Configuration Items"
parent="menu_fp_aerospace"
action="action_fp_config_item"
sequence="40"/>
<menuitem id="menu_fp_aerospace_risk"
name="Risk Register"
parent="menu_fp_aerospace"
action="action_fp_risk"
sequence="50"/>
</odoo>

View File

@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<record id="view_fp_nadcap_audit_list" model="ir.ui.view">
<field name="name">fp.nadcap.audit.list</field>
<field name="model">fusion.plating.nadcap.audit</field>
<field name="arch" type="xml">
<list string="Nadcap Audits"
decoration-success="result == 'accredited'"
decoration-warning="result == 'conditional'"
decoration-danger="result == 'failed'">
<field name="name"/>
<field name="audit_date"/>
<field name="checklist"/>
<field name="auditor_name"/>
<field name="pri_auditor" widget="boolean"/>
<field name="merit_count"/>
<field name="ncr_count"/>
<field name="accreditation_end"/>
<field name="result" widget="badge"
decoration-success="result == 'accredited'"
decoration-warning="result == 'conditional'"
decoration-danger="result == 'failed'"/>
<field name="state" widget="badge"/>
</list>
</field>
</record>
<record id="view_fp_nadcap_audit_form" model="ir.ui.view">
<field name="name">fp.nadcap.audit.form</field>
<field name="model">fusion.plating.nadcap.audit</field>
<field name="arch" type="xml">
<form string="Nadcap Audit">
<header>
<button name="action_start" string="Start Audit" type="object"
class="oe_highlight" invisible="state != 'scheduled'"/>
<button name="action_issue_report" string="Issue Report" type="object"
class="oe_highlight" invisible="state != 'in_progress'"/>
<button name="action_close" string="Close" type="object"
invisible="state != 'report_issued'"/>
<field name="state" widget="statusbar"
statusbar_visible="scheduled,in_progress,report_issued,closed"/>
</header>
<sheet>
<div class="oe_title">
<label for="name"/>
<h1><field name="name" readonly="1"/></h1>
</div>
<div class="d-flex gap-2 mb-2" invisible="not checklist">
<span class="o_fp_nadcap_badge">
<field name="checklist"/>
</span>
</div>
<group>
<group>
<field name="audit_date"/>
<field name="auditor_name"/>
<field name="pri_auditor"/>
<field name="checklist"/>
</group>
<group>
<field name="result"/>
<field name="merit_count"/>
<field name="ncr_count"/>
<field name="audit_report_attachment"/>
</group>
</group>
<group string="Accreditation">
<group>
<field name="accreditation_start"/>
</group>
<group>
<field name="accreditation_end"/>
</group>
</group>
<notebook>
<page string="Notes">
<field name="notes"/>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</record>
<record id="view_fp_nadcap_audit_search" model="ir.ui.view">
<field name="name">fp.nadcap.audit.search</field>
<field name="model">fusion.plating.nadcap.audit</field>
<field name="arch" type="xml">
<search string="Nadcap Audits">
<field name="name"/>
<field name="auditor_name"/>
<separator/>
<filter string="Scheduled" name="scheduled" domain="[('state','=','scheduled')]"/>
<filter string="In Progress" name="in_progress" domain="[('state','=','in_progress')]"/>
<filter string="Closed" name="closed" domain="[('state','=','closed')]"/>
<separator/>
<filter string="Accredited" name="accredited" domain="[('result','=','accredited')]"/>
<filter string="Failed" name="failed" domain="[('result','=','failed')]"/>
<separator/>
<filter string="PRI Auditor" name="pri_auditor" domain="[('pri_auditor','=',True)]"/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group>
<filter string="Status" name="group_state" context="{'group_by':'state'}"/>
<filter string="Checklist" name="group_checklist" context="{'group_by':'checklist'}"/>
<filter string="Result" name="group_result" context="{'group_by':'result'}"/>
</group>
</search>
</field>
</record>
<record id="action_fp_nadcap_audit" model="ir.actions.act_window">
<field name="name">Nadcap Audits</field>
<field name="res_model">fusion.plating.nadcap.audit</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_fp_nadcap_audit_search"/>
</record>
</odoo>

View File

@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2026 Nexa Systems Inc.
License OPL-1 (Odoo Proprietary License v1.0)
Part of the Fusion Plating product family.
-->
<odoo>
<record id="view_fp_risk_list" model="ir.ui.view">
<field name="name">fp.risk.list</field>
<field name="model">fusion.plating.risk</field>
<field name="arch" type="xml">
<list string="Risk Register"
decoration-success="risk_level == 'low'"
decoration-info="risk_level == 'medium'"
decoration-warning="risk_level == 'high'"
decoration-danger="risk_level == 'critical'">
<field name="name"/>
<field name="title"/>
<field name="category"/>
<field name="likelihood"/>
<field name="impact"/>
<field name="risk_score"/>
<field name="risk_level" widget="badge"
decoration-success="risk_level == 'low'"
decoration-info="risk_level == 'medium'"
decoration-warning="risk_level == 'high'"
decoration-danger="risk_level == 'critical'"/>
<field name="owner_id"/>
<field name="review_date"/>
<field name="state" widget="badge"/>
</list>
</field>
</record>
<record id="view_fp_risk_form" model="ir.ui.view">
<field name="name">fp.risk.form</field>
<field name="model">fusion.plating.risk</field>
<field name="arch" type="xml">
<form string="Risk">
<header>
<button name="action_assess" string="Assess" type="object"
class="oe_highlight" invisible="state != 'identified'"/>
<button name="action_treat" string="Treat" type="object"
class="oe_highlight" invisible="state != 'assessed'"/>
<button name="action_monitor" string="Monitor" type="object"
invisible="state != 'treated'"/>
<button name="action_close" string="Close" type="object"
invisible="state not in ('monitored','treated')"/>
<field name="state" widget="statusbar"
statusbar_visible="identified,assessed,treated,monitored,closed"/>
</header>
<sheet>
<div class="oe_title">
<label for="title"/>
<h1><field name="title" placeholder="Short risk title..."/></h1>
<div class="text-muted"><field name="name" readonly="1"/></div>
</div>
<div class="o_fp_risk_card">
<group>
<group>
<field name="category"/>
<field name="likelihood"/>
<field name="impact"/>
</group>
<group>
<field name="risk_score"/>
<field name="risk_level" widget="badge"
decoration-success="risk_level == 'low'"
decoration-info="risk_level == 'medium'"
decoration-warning="risk_level == 'high'"
decoration-danger="risk_level == 'critical'"/>
<field name="owner_id"/>
<field name="review_date"/>
</group>
</group>
</div>
<notebook>
<page string="Description">
<field name="description"/>
</page>
<page string="Mitigation Plan">
<field name="mitigation_plan"/>
</page>
</notebook>
</sheet>
<chatter/>
</form>
</field>
</record>
<record id="view_fp_risk_search" model="ir.ui.view">
<field name="name">fp.risk.search</field>
<field name="model">fusion.plating.risk</field>
<field name="arch" type="xml">
<search string="Risks">
<field name="name"/>
<field name="title"/>
<field name="owner_id"/>
<separator/>
<filter string="Critical" name="critical" domain="[('risk_level','=','critical')]"/>
<filter string="High" name="high" domain="[('risk_level','=','high')]"/>
<filter string="Medium" name="medium" domain="[('risk_level','=','medium')]"/>
<filter string="Low" name="low" domain="[('risk_level','=','low')]"/>
<separator/>
<filter string="Open" name="open" domain="[('state','not in',['closed'])]"/>
<filter string="Closed" name="closed" domain="[('state','=','closed')]"/>
<separator/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group>
<filter string="Level" name="group_level" context="{'group_by':'risk_level'}"/>
<filter string="Category" name="group_category" context="{'group_by':'category'}"/>
<filter string="Owner" name="group_owner" context="{'group_by':'owner_id'}"/>
<filter string="Status" name="group_state" context="{'group_by':'state'}"/>
</group>
</search>
</field>
</record>
<record id="action_fp_risk" model="ir.actions.act_window">
<field name="name">Risk Register</field>
<field name="res_model">fusion.plating.risk</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="view_fp_risk_search"/>
</record>
</odoo>