This commit is contained in:
gsinghpal
2026-04-12 09:09:50 -04:00
parent d07159b9b5
commit be611876ad
470 changed files with 41761 additions and 51 deletions

View File

@@ -0,0 +1,85 @@
<?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>
<!-- ================================================================== -->
<!-- MODULE CATEGORY -->
<!-- Odoo 19 organises privileges by ir.module.category. Without this, -->
<!-- groups fall into the generic Extra Rights list in user settings. -->
<!-- ================================================================== -->
<record id="module_category_fusion_plating" model="ir.module.category">
<field name="name">Fusion Plating</field>
<field name="sequence">46</field>
</record>
<!-- ================================================================== -->
<!-- PRIVILEGE (Odoo 19 res.groups.privilege) -->
<!-- Groups must reference this privilege_id so they render under a -->
<!-- "FUSION PLATING" section in user settings. -->
<!-- ================================================================== -->
<record id="res_groups_privilege_fusion_plating" model="res.groups.privilege">
<field name="name">Fusion Plating</field>
<field name="sequence">46</field>
<field name="category_id" ref="module_category_fusion_plating"/>
</record>
<!-- ================================================================== -->
<!-- OPERATOR (base shop-floor access) -->
<!-- Reads most reference data, writes chemistry logs. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_operator" model="res.groups">
<field name="name">Operator</field>
<field name="sequence">10</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
<!-- ================================================================== -->
<!-- SUPERVISOR (line supervisor, team lead) -->
<!-- Can manage baths, schedule jobs, review logs. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_supervisor" model="res.groups">
<field name="name">Supervisor</field>
<field name="sequence">20</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('group_fusion_plating_operator'))]"/>
</record>
<!-- ================================================================== -->
<!-- MANAGER (quality, EHS, plant manager, engineer) -->
<!-- Full CRUD on configuration objects. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_manager" model="res.groups">
<field name="name">Manager</field>
<field name="sequence">30</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('group_fusion_plating_supervisor'))]"/>
</record>
<!-- ================================================================== -->
<!-- ADMINISTRATOR (owner, super-admin) -->
<!-- Everything a Manager can do, plus system-level settings. -->
<!-- ================================================================== -->
<record id="group_fusion_plating_admin" model="res.groups">
<field name="name">Administrator</field>
<field name="sequence">40</field>
<field name="privilege_id" ref="res_groups_privilege_fusion_plating"/>
<field name="implied_ids" eval="[(4, ref('group_fusion_plating_manager'))]"/>
<field name="user_ids" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<!-- ================================================================== -->
<!-- RECORD RULE — Multi-company isolation on facilities -->
<!-- ================================================================== -->
<record id="fp_facility_company_rule" model="ir.rule">
<field name="name">Fusion Plating: Facility — multi-company</field>
<field name="model_id" ref="model_fusion_plating_facility"/>
<field name="global" eval="True"/>
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field>
</record>
</odoo>

View File

@@ -0,0 +1,28 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_fp_process_category_operator,fp.process.category.operator,model_fusion_plating_process_category,group_fusion_plating_operator,1,0,0,0
access_fp_process_category_manager,fp.process.category.manager,model_fusion_plating_process_category,group_fusion_plating_manager,1,1,1,1
access_fp_process_type_operator,fp.process.type.operator,model_fusion_plating_process_type,group_fusion_plating_operator,1,0,0,0
access_fp_process_type_manager,fp.process.type.manager,model_fusion_plating_process_type,group_fusion_plating_manager,1,1,1,1
access_fp_bath_parameter_operator,fp.bath.parameter.operator,model_fusion_plating_bath_parameter,group_fusion_plating_operator,1,0,0,0
access_fp_bath_parameter_manager,fp.bath.parameter.manager,model_fusion_plating_bath_parameter,group_fusion_plating_manager,1,1,1,1
access_fp_facility_operator,fp.facility.operator,model_fusion_plating_facility,group_fusion_plating_operator,1,0,0,0
access_fp_facility_supervisor,fp.facility.supervisor,model_fusion_plating_facility,group_fusion_plating_supervisor,1,0,0,0
access_fp_facility_manager,fp.facility.manager,model_fusion_plating_facility,group_fusion_plating_manager,1,1,1,1
access_fp_work_center_operator,fp.work.center.operator,model_fusion_plating_work_center,group_fusion_plating_operator,1,0,0,0
access_fp_work_center_supervisor,fp.work.center.supervisor,model_fusion_plating_work_center,group_fusion_plating_supervisor,1,1,0,0
access_fp_work_center_manager,fp.work.center.manager,model_fusion_plating_work_center,group_fusion_plating_manager,1,1,1,1
access_fp_tank_operator,fp.tank.operator,model_fusion_plating_tank,group_fusion_plating_operator,1,0,0,0
access_fp_tank_supervisor,fp.tank.supervisor,model_fusion_plating_tank,group_fusion_plating_supervisor,1,1,0,0
access_fp_tank_manager,fp.tank.manager,model_fusion_plating_tank,group_fusion_plating_manager,1,1,1,1
access_fp_bath_operator,fp.bath.operator,model_fusion_plating_bath,group_fusion_plating_operator,1,0,0,0
access_fp_bath_supervisor,fp.bath.supervisor,model_fusion_plating_bath,group_fusion_plating_supervisor,1,1,1,0
access_fp_bath_manager,fp.bath.manager,model_fusion_plating_bath,group_fusion_plating_manager,1,1,1,1
access_fp_bath_target_operator,fp.bath.target.operator,model_fusion_plating_bath_target,group_fusion_plating_operator,1,0,0,0
access_fp_bath_target_supervisor,fp.bath.target.supervisor,model_fusion_plating_bath_target,group_fusion_plating_supervisor,1,1,1,0
access_fp_bath_target_manager,fp.bath.target.manager,model_fusion_plating_bath_target,group_fusion_plating_manager,1,1,1,1
access_fp_bath_log_operator,fp.bath.log.operator,model_fusion_plating_bath_log,group_fusion_plating_operator,1,1,1,0
access_fp_bath_log_supervisor,fp.bath.log.supervisor,model_fusion_plating_bath_log,group_fusion_plating_supervisor,1,1,1,0
access_fp_bath_log_manager,fp.bath.log.manager,model_fusion_plating_bath_log,group_fusion_plating_manager,1,1,1,1
access_fp_bath_log_line_operator,fp.bath.log.line.operator,model_fusion_plating_bath_log_line,group_fusion_plating_operator,1,1,1,0
access_fp_bath_log_line_supervisor,fp.bath.log.line.supervisor,model_fusion_plating_bath_log_line,group_fusion_plating_supervisor,1,1,1,0
access_fp_bath_log_line_manager,fp.bath.log.line.manager,model_fusion_plating_bath_log_line,group_fusion_plating_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_fp_process_category_operator fp.process.category.operator model_fusion_plating_process_category group_fusion_plating_operator 1 0 0 0
3 access_fp_process_category_manager fp.process.category.manager model_fusion_plating_process_category group_fusion_plating_manager 1 1 1 1
4 access_fp_process_type_operator fp.process.type.operator model_fusion_plating_process_type group_fusion_plating_operator 1 0 0 0
5 access_fp_process_type_manager fp.process.type.manager model_fusion_plating_process_type group_fusion_plating_manager 1 1 1 1
6 access_fp_bath_parameter_operator fp.bath.parameter.operator model_fusion_plating_bath_parameter group_fusion_plating_operator 1 0 0 0
7 access_fp_bath_parameter_manager fp.bath.parameter.manager model_fusion_plating_bath_parameter group_fusion_plating_manager 1 1 1 1
8 access_fp_facility_operator fp.facility.operator model_fusion_plating_facility group_fusion_plating_operator 1 0 0 0
9 access_fp_facility_supervisor fp.facility.supervisor model_fusion_plating_facility group_fusion_plating_supervisor 1 0 0 0
10 access_fp_facility_manager fp.facility.manager model_fusion_plating_facility group_fusion_plating_manager 1 1 1 1
11 access_fp_work_center_operator fp.work.center.operator model_fusion_plating_work_center group_fusion_plating_operator 1 0 0 0
12 access_fp_work_center_supervisor fp.work.center.supervisor model_fusion_plating_work_center group_fusion_plating_supervisor 1 1 0 0
13 access_fp_work_center_manager fp.work.center.manager model_fusion_plating_work_center group_fusion_plating_manager 1 1 1 1
14 access_fp_tank_operator fp.tank.operator model_fusion_plating_tank group_fusion_plating_operator 1 0 0 0
15 access_fp_tank_supervisor fp.tank.supervisor model_fusion_plating_tank group_fusion_plating_supervisor 1 1 0 0
16 access_fp_tank_manager fp.tank.manager model_fusion_plating_tank group_fusion_plating_manager 1 1 1 1
17 access_fp_bath_operator fp.bath.operator model_fusion_plating_bath group_fusion_plating_operator 1 0 0 0
18 access_fp_bath_supervisor fp.bath.supervisor model_fusion_plating_bath group_fusion_plating_supervisor 1 1 1 0
19 access_fp_bath_manager fp.bath.manager model_fusion_plating_bath group_fusion_plating_manager 1 1 1 1
20 access_fp_bath_target_operator fp.bath.target.operator model_fusion_plating_bath_target group_fusion_plating_operator 1 0 0 0
21 access_fp_bath_target_supervisor fp.bath.target.supervisor model_fusion_plating_bath_target group_fusion_plating_supervisor 1 1 1 0
22 access_fp_bath_target_manager fp.bath.target.manager model_fusion_plating_bath_target group_fusion_plating_manager 1 1 1 1
23 access_fp_bath_log_operator fp.bath.log.operator model_fusion_plating_bath_log group_fusion_plating_operator 1 1 1 0
24 access_fp_bath_log_supervisor fp.bath.log.supervisor model_fusion_plating_bath_log group_fusion_plating_supervisor 1 1 1 0
25 access_fp_bath_log_manager fp.bath.log.manager model_fusion_plating_bath_log group_fusion_plating_manager 1 1 1 1
26 access_fp_bath_log_line_operator fp.bath.log.line.operator model_fusion_plating_bath_log_line group_fusion_plating_operator 1 1 1 0
27 access_fp_bath_log_line_supervisor fp.bath.log.line.supervisor model_fusion_plating_bath_log_line group_fusion_plating_supervisor 1 1 1 0
28 access_fp_bath_log_line_manager fp.bath.log.line.manager model_fusion_plating_bath_log_line group_fusion_plating_manager 1 1 1 1