1 <?xml version="1.0" encoding="utf-8"?>
5 <record id="view_attendance_form" model="ir.ui.view">
6 <field name="name">hr.attendance.form</field>
7 <field name="model">hr.attendance</field>
8 <field name="arch" type="xml">
9 <form string="Employee attendances">
12 <field name="employee_id"/>
14 <field name="action"/>
15 <field name="action_desc"/>
22 <record id="view_attendance_tree" model="ir.ui.view">
23 <field name="name">hr.attendance.tree</field>
24 <field name="model">hr.attendance</field>
25 <field name="arch" type="xml">
26 <tree string="Employee attendances">
28 <field name="action"/>
29 <field name="action_desc"/>
34 <record id="view_attendance_who" model="ir.ui.view">
35 <field name="name">hr.attendance.tree</field>
36 <field name="model">hr.attendance</field>
37 <field eval="3" name="priority"/>
38 <field name="arch" type="xml">
39 <tree string="Employee attendances">
40 <field name="employee_id"/>
42 <field name="action"/>
47 <record model="ir.ui.view" id="view_hr_attendance_filter">
48 <field name="name">view_hr_attendance_filter</field>
49 <field name="model">hr.attendance</field>
50 <field name="arch" type="xml">
51 <search string="Hr Attendance Search">
52 <field name="name" string="Attendance"/>
53 <field name="action"/>
54 <filter string="Today" name="today" domain="[('name','>=',current_date),('name','<=',current_date)]" />
55 <filter string="Current Month" domain="[('name','>=', datetime.datetime.now().strftime('%Y-%m-01'))]" />
57 <filter string="My Attendance" domain="[('employee_id.user_id.id', '=', uid)]" />
58 <field name="employee_id"/>
59 <group expand="0" string="Group By">
60 <filter name="employee" string="Employee" context="{'group_by':'employee_id'}"/>
62 <filter name="name" string="Month" context="{'group_by':'name'}"/>
68 <record id="view_hr_attendance_graph" model="ir.ui.view">
69 <field name="name">hr.attendance.graph</field>
70 <field name="model">hr.attendance</field>
71 <field name="arch" type="xml">
72 <graph string="Attendance" type="pivot">
73 <field name="employee_id" type="row"/>
74 <field name="name" type="col"/>
75 <field name="worked_hours" type="measure"/>
80 <record id="open_view_attendance" model="ir.actions.act_window">
81 <field name="name">Attendances</field>
82 <field name="res_model">hr.attendance</field>
83 <field name="view_type">form</field>
84 <field name="view_mode">tree,form</field>
85 <field name="context">{"search_default_today":1}</field>
86 <field name="search_view_id" ref="view_hr_attendance_filter" />
87 <field name="help">The Time Tracking functionality aims to manage employee attendances from Sign in/Sign out actions. You can also link this feature to an attendance device using Odoo's web service features.</field>
90 <record id="action_hr_attendance_graph" model="ir.actions.act_window">
91 <field name="name">Attendance Analysis</field>
92 <field name="res_model">hr.attendance</field>
93 <field name="view_type">form</field>
94 <field name="view_mode">graph</field>
95 <field name="view_id" ref="view_hr_attendance_graph"/>
98 <menuitem id="menu_hr_time_tracking" name="Time Tracking" parent="hr.menu_hr_root" sequence="5" groups="base.group_user,base.group_hr_user,base.group_hr_manager"/>
100 <menuitem id="menu_hr_attendance" name="Attendances" parent="hr.menu_hr_root" sequence="10" groups="base.group_hr_attendance"/>
102 <menuitem action="open_view_attendance" id="menu_open_view_attendance" parent="menu_hr_attendance" sequence="20" groups="base.group_hr_attendance"/>
105 action="action_hr_attendance_graph"
106 id="menu_hr_attendance_graph"
107 parent="hr.menu_hr_reporting"
111 <record id="edit_attendance_reason" model="ir.ui.view">
112 <field name="name">hr.action.reason.form</field>
113 <field name="model">hr.action.reason</field>
114 <field name="arch" type="xml">
115 <form string="Define attendance reason">
118 <field name="action_type"/>
124 <record id="view_attendance_reason" model="ir.ui.view">
125 <field name="name">hr.action.reason.tree</field>
126 <field name="model">hr.action.reason</field>
127 <field name="arch" type="xml">
128 <tree string="Attendance reasons">
129 <field name="name" />
130 <field name="action_type"/>
135 <record id="open_view_attendance_reason" model="ir.actions.act_window">
136 <field name="name">Attendance Reasons</field>
137 <field name="type">ir.actions.act_window</field>
138 <field name="res_model">hr.action.reason</field>
139 <field name="view_type">form</field>
140 <field name="view_mode">tree,form</field>
141 <field name="view_id" ref="view_attendance_reason"/>
144 <menuitem action="open_view_attendance_reason" id="menu_open_view_attendance_reason" parent="hr.menu_hr_configuration_timesheets_attendances" groups="base.group_hr_attendance" sequence="1"/>
146 <record id="hr_attendance_employee" model="ir.ui.view">
147 <field name="name">hr.employee.form1</field>
148 <field name="model">hr.employee</field>
149 <field name="inherit_id" ref="hr.view_employee_form"/>
150 <field name="arch" type="xml">
151 <field name="active" position="before">
152 <label for="state" groups="base.group_hr_attendance"/>
153 <div groups="base.group_hr_attendance">
154 <field name="state" class="oe_inline"/> -
155 <button class="oe_link" name="attendance_action_change" states="present" string="Sign Out" type="object" context="{'type':'sign_out'}" groups="base.group_hr_user"/>
156 <button class="oe_link" name="attendance_action_change" states="absent" string="Sign In" type="object" context="{'type':'sign_in'}" groups="base.group_hr_user"/>