You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
10 KiB
200 lines
10 KiB
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!-- This XML defines a search view to search and filter disciplinary actions -->
|
|
<record id="disciplinary_action_search_view" model="ir.ui.view">
|
|
<field name="name">disciplinary.action.view.search</field>
|
|
<field name="model">disciplinary.action</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Search information">
|
|
<field name="employee_id"/>
|
|
<field name="department_id"/>
|
|
<field name="joined_date"/>
|
|
<field name="discipline_reason_id"/>
|
|
<filter string="Draft" name="draft"
|
|
domain="[('state','=','draft')]"/>
|
|
<filter string="Waiting Explanation" name="explain"
|
|
domain="[('state','=','explain')]"/>
|
|
<filter string="Waiting Action" name="submitted"
|
|
domain="[('state','=','submitted')]"/>
|
|
<filter string="Action Validated" name="action"
|
|
domain="[('state','=','action')]"/>
|
|
<filter string="Cancel" name="cancel"
|
|
domain="[('state','=','cancel')]"/>
|
|
<separator/>
|
|
<group expand="1" string="Group By">
|
|
<filter string="State" name="state"
|
|
context="{'group_by': 'state'}"/>
|
|
<filter string="Department" name="department_id"
|
|
context="{'group_by':'department_id'}"/>
|
|
<filter string="Joined Date" name="joined_date"
|
|
context="{'group_by': 'joined_date'}"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
<!-- This XML defines a list view to display disciplinary actions with fields-->
|
|
<record id="employee_disciplinary_view_tree" model="ir.ui.view">
|
|
<field name="name">disciplinary.action.view.list</field>
|
|
<field name="model">disciplinary.action</field>
|
|
<field name="arch" type="xml">
|
|
<list string="Disciplinary Action">
|
|
<field name="name"/>
|
|
<field name="employee_id" groups="hr.group_hr_manager"/>
|
|
<field name="state"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
<!-- This XML defines a list view to display disciplinary actions with fields-->
|
|
<record id="disciplinary_action_view_form" model="ir.ui.view">
|
|
<field name="name">disciplinary.action.view.form</field>
|
|
<field name="model">disciplinary.action</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Disciplinary Action">
|
|
<header>
|
|
<button name="assign_function" type="object"
|
|
string="Proceed" class="oe_highlight"
|
|
invisible="state != 'draft'"/>
|
|
<button name="explanation_function" type="object"
|
|
string="Submit" class="oe_highlight"
|
|
invisible="state !='explain'"/>
|
|
<button name="action_function" type="object"
|
|
string="Validate Action"
|
|
invisible="state!='submitted'"
|
|
class="oe_highlight"/>
|
|
<button name="cancel_function" type="object"
|
|
string="Cancel"
|
|
invisible="state not in ['draft','submitted']"
|
|
/>
|
|
<button name="set_to_function" type="object"
|
|
string="Set to Draft" invisible="state !='cancel'"/>
|
|
<field name="state" widget="statusbar"
|
|
statusbar_visible="draft,explain,action"/>
|
|
</header>
|
|
<sheet>
|
|
<div class="oe_title">
|
|
<h1>
|
|
<field name="name" readonly="1"/>
|
|
</h1>
|
|
</div>
|
|
<h2>
|
|
<group colspan="4">
|
|
<field name="employee_id" string="Employee"
|
|
required="True"
|
|
/>
|
|
</group>
|
|
</h2>
|
|
<group>
|
|
<group>
|
|
<field name="department_id" required="True"
|
|
/>
|
|
<field name="joined_date" string="Joined Date"/>
|
|
<field name="read_only" invisible="True"/>
|
|
<field name="warning" invisible="True"/>
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page name="Disciplinary Information"
|
|
string="Disciplinary Information">
|
|
<group colspan="4">
|
|
<group>
|
|
<field name="discipline_reason_id"
|
|
string="Reason" required="True"
|
|
readonly="read_only != True"
|
|
domain="[('category_type','=','disciplinary')]"/>
|
|
</group>
|
|
<group>
|
|
<field name="explanation"
|
|
invisible="state == 'draft'"
|
|
readonly="state == 'action'"
|
|
/>
|
|
</group>
|
|
<group>
|
|
<field name="attachment_ids"
|
|
widget="many2many_binary"
|
|
class="oe_inline"
|
|
invisible="state == 'draft'"
|
|
readonly="state == 'action'"/>
|
|
</group>
|
|
</group>
|
|
<group>
|
|
<field name="note"
|
|
readonly="state == 'action'"/>
|
|
</group>
|
|
<!-- <field name="action" invisible="1"/>-->
|
|
</page>
|
|
<page name="action_information"
|
|
invisible="state not in ['submitted','action']"
|
|
string="Action Information">
|
|
<group>
|
|
<field name="action_id" string="Action"
|
|
domain="[('category_type','=','action')]"
|
|
invisible="state not in ['submitted','action']"
|
|
readonly="state == 'action'"/>
|
|
</group>
|
|
<group>
|
|
<field name="action_details"
|
|
invisible="'action_id' == False"
|
|
readonly="state == 'action' and 'read_only' != True "/>
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
<chatter/>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
<!-- Action for disciplinary action model.-->
|
|
<record id="disciplinary_action_action" model="ir.actions.act_window">
|
|
<field name="name">Disciplinary Action</field>
|
|
<field name="res_model">disciplinary.action</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="domain">
|
|
[('state','in',('draft','explain','submitted','action','cancel'))]
|
|
</field>
|
|
</record>
|
|
<!-- Action for disciplinary action model by specifying the domain.-->
|
|
<record id="disciplinary_action_details" model="ir.actions.act_window">
|
|
<field name="name">Disciplinary Actions</field>
|
|
<field name="res_model">disciplinary.action</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="domain">[('state','=','action'),('employee_id.id',
|
|
'=', active_id)]
|
|
</field>
|
|
</record>
|
|
<!-- Action for disciplinary action model by specifying actions in draft state.-->
|
|
<record id="disciplinary_action_details_view"
|
|
model="ir.actions.act_window">
|
|
<field name="name">Disciplinary Action Details</field>
|
|
<field name="res_model">disciplinary.action</field>
|
|
<field name="view_mode">list,form</field>
|
|
<field name="domain">[('state','!=','draft')]</field>
|
|
</record>
|
|
<!-- Button in Employee form view to access disciplinary actions for the employee -->
|
|
<record id="view_employee_form" model="ir.ui.view">
|
|
<field name="name">inherit.employee.form.view</field>
|
|
<field name="model">hr.employee</field>
|
|
<field name="inherit_id" ref="hr.view_employee_form"/>
|
|
<field name="arch" type="xml">
|
|
<!--Add Discipline button in the Employee Form-->
|
|
<xpath expr="//div[@name='button_box']" position="inside">
|
|
<button name="%(disciplinary_action_details)d"
|
|
class="oe_stat_button"
|
|
icon="fa-info-circle"
|
|
type="action"
|
|
>
|
|
<field string="Disciplinary Action"
|
|
name="discipline_count" widget="statinfo"/>
|
|
</button>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
<!-- Menu item for accessing disciplinary actions in the HR module -->
|
|
<menuitem id="disciplinary_action" name="Disciplinary Actions"
|
|
parent="hr.menu_hr_root"
|
|
sequence="23"/>
|
|
<!-- Menu item to create new disciplinary actions -->l
|
|
<menuitem id="disciplinary_action_create"
|
|
action="disciplinary_action_action" groups="hr.group_hr_user"
|
|
name="Disciplinary Action" parent="disciplinary_action"
|
|
sequence="1"/>
|
|
</odoo>
|
|
|