hr_attendance_overtime_request/views/hr_overtime_request_views.xml
<?xml version="1.0" ?>
<!-- Copyright 2018 OpenSynergy Indonesia
Copyright 2020 PT. Simetri Sinergi Indonesia
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl-3.0) -->
<openerp>
<data>
<record id="hr_overtime_request_view_form" model="ir.ui.view">
<field name="name">hr.overtime_request form</field>
<field name="model">hr.overtime_request</field>
<field name="arch" type="xml">
<form>
<header>
<button
name="request_validation"
string="Request Validation"
attrs="{'invisible': ['|','|',('need_validation', '!=', True),('rejected','=',True),('state','not in',['confirm'])]}"
type="object"
/>
<button
name="restart_validation"
string="Restart Validation"
attrs="{'invisible': ['|','|','|',('review_ids', '=', []),('rejected','=',False),('state','not in',['confirm']),('restart_validation_ok','=',False)]}"
type="object"
/>
<button
name="action_confirm"
type="object"
string="Confirm"
class="oe_highlight"
attrs="{'invisible':['|',('state','!=','draft'),('confirm_ok','=',False)]}"
/>
<button
name="action_cancel"
type="object"
string="Cancel"
attrs="{'invisible':['|',('state','not in',['draft','confirm','valid']),('cancel_ok','=',False)]}"
/>
<button
name="action_restart"
type="object"
string="Restart"
attrs="{'invisible':['|',('state','!=','cancel'),('restart_ok','=',False)]}"
/>
<field
name="state"
widget="statusbar"
statusbar_visible="draft,confirm,valid"
/>
<field name="need_validation" invisible="1" />
<field name="validated" invisible="1" />
<field name="rejected" invisible="1" />
<div
class="alert alert-warning"
attrs="{'invisible': ['|', '|', '|',
('validated', '=', True), ('state', 'not in', ['confirm']),
('rejected', '=', True), ('review_ids', '=', [])]}"
style="margin-bottom:0px;"
>
<p><i class="fa fa-info-circle" />This data needs to be validated.
<button
name="validate_tier"
string="Validate"
attrs="{'invisible': [('review_ids', '=', [])]}"
type="object"
class="oe_inline oe_button btn-success"
icon="terp-check"
/>
<button
name="reject_tier"
string="Reject"
type="object"
class="btn-icon btn-danger"
icon="terp-gtk-stop"
/>
</p>
</div>
<div
class="alert alert-success"
attrs="{'invisible': ['|', '|', ('validated', '!=', True), ('state', 'not in', ['confirm']), ('review_ids', '=', [])]}"
style="margin-bottom:0px;"
>
<p><i class="fa fa-thumbs-up" /> Operation has been <b
>validated</b>!</p>
</div>
<div
class="alert alert-danger"
attrs="{'invisible': ['|', '|', ('rejected', '!=', True), ('state', 'not in', ['confirm']), ('review_ids', '=', [])]}"
style="margin-bottom:0px;"
>
<p><i class="fa fa-thumbs-down" /> Operation has been <b
>rejected</b>.</p>
</div>
</header>
<sheet>
<label for="name" />
<h1>
<field name="name" />
</h1>
<group name="group_1" colspan="4" col="2">
<group name="group_1_1" colspan="1" col="2">
<field name="company_id" groups="base.group_multi_company" />
<field
name="employee_id"
invisible="context.get('hide_employee', 0)"
/>
<field name="department_id" groups="base.group_system" />
<field name="manager_id" groups="base.group_system" />
<field name="type_id" />
</group>
<group name="group_1_2" colspan="1" col="2">
<separator string="Planned" colspan="2" />
<field name="date_start" />
<field name="date_end" />
<label for="overtime_hour" />
<div>
<field
name="overtime_hour"
class="oe_inline"
widget="float_time"
/>
hour(s)
</div>
<separator string="Realization" colspan="2" />
<field name="start_attendance_id" />
<field name="end_attendance_id" />
<field name="real_date_start" />
<field name="real_date_end" />
<label for="real_overtime_hour" />
<div>
<field
name="real_overtime_hour"
class="oe_inline"
widget="float_time"
/>
hour(s)
</div>
</group>
</group>
<notebook>
<page name="note" string="Note">
<field name="note" colspan="4" nolabel="1" />
</page>
<page name="attendances" string="Attendance(s)">
<field name="attendance_ids" colspan="4" nolabel="1" />
</page>
<page name="policy" string="Policy" groups="base.group_system">
<group name="group_policy_1" colspan="4" col="2">
<field name="confirm_ok" />
<field name="cancel_ok" />
<field name="restart_ok" />
<field name="restart_validation_ok" />
</group>
</page>
<page string="Reviews" name="tier_validation">
<group>
<field name="definition_id" />
<field
name="reviewer_partner_ids"
widget="many2many_tags"
/>
<field name="review_ids" readonly="1" />
</group>
</page>
<page name="log" string="Log" groups="base.group_system">
<group name="group_log_1" colspan="4" col="3">
<field name="create_date" string="Creation" />
<field name="create_uid" nolabel="1" />
<field name="confirmed_date" string="Confirmation" />
<field name="confirmed_user_id" nolabel="1" />
<field name="validated_date" string="Validation" />
<field name="validated_user_id" nolabel="1" />
<field name="cancelled_date" string="Cancellation" />
<field name="cancelled_user_id" nolabel="1" />
</group>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field
name="message_follower_ids"
widget="mail_followers"
groups="base.group_user"
/>
<field name="message_ids" widget="mail_thread" />
</div>
</form>
</field>
</record>
<record id="hr_overtime_request_view_tree" model="ir.ui.view">
<field name="name">hr.overtime_request tree</field>
<field name="model">hr.overtime_request</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
<field name="company_id" groups="base.group_multi_company" />
<field name="employee_id" invisible="context.get('hide_employee', 0)" />
<field name="department_id" groups="base.group_system" />
<field name="manager_id" groups="base.group_system" />
<field name="type_id" />
<field name="date_start" />
<field name="date_end" />
<field name="overtime_hour" widget="float_time" />
<field name="real_date_start" />
<field name="real_date_end" />
<field name="real_overtime_hour" widget="float_time" />
<field name="state" />
</tree>
</field>
</record>
<record id="hr_overtime_request_view_search" model="ir.ui.view">
<field name="name">hr.overtime_request search</field>
<field name="model">hr.overtime_request</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="company_id" groups="base.group_multi_company" />
<field name="employee_id" invisible="context.get('hide_employee', 0)" />
<field name="department_id" groups="base.group_system" />
<field name="manager_id" groups="base.group_system" />
<field name="type_id" />
<field name="date_start" />
<field name="date_end" />
<field name="state" />
<group name="group_state" string="State">
<filter
name="filter_draft"
string="Draft"
domain="[('state','=','draft')]"
/>
<filter
name="filter_confirm"
string="Waiting for Approval"
domain="[('state','=','confirm')]"
/>
<filter
name="filter_valid"
string="Valid"
domain="[('state','=','valid')]"
/>
<filter
name="filter_cancel"
string="Cancel"
domain="[('state','=','cancel')]"
/>
</group>
<group name="group_by" string="Group By..">
<filter
name="grp_employee"
string="Employee"
context="{'group_by':'employee_id'}"
/>
<filter
name="grp_type"
string="Type"
context="{'group_by':'type_id'}"
/>
<filter
name="grp_date_year"
string="Date by Year"
context="{'group_by':'date_start:year'}"
/>
<filter
name="grp_date_month"
string="Date by Month"
context="{'group_by':'date_start:month'}"
/>
<filter
name="grp_date_day"
string="Date by Day"
context="{'group_by':'date_start:day'}"
/>
<filter
name="grp_state"
string="State"
context="{'group_by':'state'}"
/>
</group>
</search>
</field>
</record>
<record id="hr_overtime_request_action" model="ir.actions.act_window">
<field name="name">Overtime Request</field>
<field name="res_model">hr.overtime_request</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field
name="context"
>{'search_default_filter_draft':1, 'search_default_filter_confirm':1}</field>
<field name="search_view_id" ref="hr_overtime_request_view_search" />
</record>
<menuitem
id="hr_overtime_request_menu"
name="Overtime Request"
parent="hr_overtime_root_menu"
action="hr_overtime_request_action"
sequence="2"
/>
<record id="hr_overtime_request_my_action" model="ir.actions.act_window">
<field name="name">My Overtime Request</field>
<field name="res_model">hr.overtime_request</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field
name="context"
>{'search_default_filter_draft':1, 'search_default_filter_confirm':1, 'hide_employee':1}</field>
<field name="domain">[('employee_id.user_id.id','=',uid)]</field>
<field name="search_view_id" ref="hr_overtime_request_view_search" />
</record>
<menuitem
id="hr_overtime_request_my_menu"
name="My Overtime Request"
parent="hr_overtime_root_menu"
action="hr_overtime_request_my_action"
sequence="1"
/>
</data>
</openerp>