110 lines
4.8 KiB
XML
110 lines
4.8 KiB
XML
<?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_cgp_ai_list" model="ir.ui.view">
|
|
<field name="name">fp.cgp.ai.list</field>
|
|
<field name="model">fusion.plating.cgp.authorized.individual</field>
|
|
<field name="arch" type="xml">
|
|
<list string="Authorized Individuals"
|
|
decoration-success="state == 'active'"
|
|
decoration-muted="state == 'inactive'"
|
|
decoration-warning="state == 'suspended'"
|
|
decoration-danger="state == 'revoked'">
|
|
<field name="name"/>
|
|
<field name="employee_id"/>
|
|
<field name="appointment_date"/>
|
|
<field name="psa_level"/>
|
|
<field name="psa_expiry"/>
|
|
<field name="training_completed_date"/>
|
|
<field name="state" widget="badge"
|
|
decoration-success="state == 'active'"
|
|
decoration-warning="state == 'suspended'"
|
|
decoration-danger="state == 'revoked'"
|
|
decoration-muted="state == 'inactive'"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_fp_cgp_ai_form" model="ir.ui.view">
|
|
<field name="name">fp.cgp.ai.form</field>
|
|
<field name="model">fusion.plating.cgp.authorized.individual</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Authorized Individual">
|
|
<header>
|
|
<button name="action_activate" string="Activate" type="object"
|
|
class="oe_highlight"
|
|
invisible="state == 'active'"/>
|
|
<button name="action_suspend" string="Suspend" type="object"
|
|
invisible="state not in ('active',)"/>
|
|
<button name="action_revoke" string="Revoke" type="object"
|
|
invisible="state == 'revoked'"/>
|
|
<button name="action_deactivate" string="Deactivate" type="object"
|
|
invisible="state != 'active'"/>
|
|
<field name="state" widget="statusbar"
|
|
statusbar_visible="active,inactive,suspended,revoked"/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_title">
|
|
<label for="name"/>
|
|
<h1><field name="name"/></h1>
|
|
</div>
|
|
<group>
|
|
<group string="Appointment">
|
|
<field name="employee_id"/>
|
|
<field name="appointment_date"/>
|
|
<field name="training_completed_date"/>
|
|
</group>
|
|
<group string="PSA">
|
|
<field name="psa_level"/>
|
|
<field name="psa_expiry"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Notes">
|
|
<field name="notes"/>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<chatter/>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_fp_cgp_ai_search" model="ir.ui.view">
|
|
<field name="name">fp.cgp.ai.search</field>
|
|
<field name="model">fusion.plating.cgp.authorized.individual</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Authorized Individuals">
|
|
<field name="name"/>
|
|
<field name="employee_id"/>
|
|
<separator/>
|
|
<filter string="Active" name="active_ai"
|
|
domain="[('state','=','active')]"/>
|
|
<filter string="Suspended" name="suspended"
|
|
domain="[('state','=','suspended')]"/>
|
|
<filter string="Revoked" name="revoked"
|
|
domain="[('state','=','revoked')]"/>
|
|
<group>
|
|
<filter string="Status" name="group_state"
|
|
context="{'group_by':'state'}"/>
|
|
<filter string="PSA Level" name="group_level"
|
|
context="{'group_by':'psa_level'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="action_fp_cgp_ai" model="ir.actions.act_window">
|
|
<field name="name">Authorized Individuals</field>
|
|
<field name="res_model">fusion.plating.cgp.authorized.individual</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="search_view_id" ref="view_fp_cgp_ai_search"/>
|
|
</record>
|
|
|
|
</odoo>
|