| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
expected_hours_from_contract_no |
expected_hours_from_contract_no | ir.ui.view | qweb | New |
expected_hours_from_contract_yes |
expected_hours_from_contract_yes | ir.ui.view | qweb | New |
hr_attendance.public_kiosk_mode |
Attendance Kiosk | ir.ui.view | qweb | New |
hr_attendance_employee_simple_form_view |
hr.attendance.form | hr.attendance | field | Inherits hr_attendance.hr_attendance_view_form |
hr_attendance_employee_simple_tree_view |
hr.attendance.list | hr.attendance | list | New |
hr_attendance_management_view_filter |
hr_attendance_management_view_filter | hr.attendance | search | New |
hr_attendance_overtime_rule_view_form |
hr.attendance.overtime.rule.form | hr.attendance.overtime.rule | form | New |
hr_attendance_overtime_rule_view_list |
hr.attendance.overtime.rule.list | hr.attendance.overtime.rule | list | New |
hr_attendance_overtime_ruleset_view_filter |
hr_attendance_overtime_ruleset_view_filter | hr.attendance.overtime.ruleset | search | New |
hr_attendance_overtime_ruleset_view_form |
hr.attendance.overtime.ruleset.form | hr.attendance.overtime.ruleset | form | New |
hr_attendance_overtime_ruleset_view_list |
hr.attendance.overtime.ruleset.list | hr.attendance.overtime.ruleset | list | New |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_public_view_form |
hr.employee.public.form.inherit.attendance | hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form |
hr_employee_search_view |
hr.employee.search.view | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_tree |
hr.attendance.list | hr.attendance | list | New |
view_attendance_tree_management |
hr.attendance.list | hr.attendance | list | New |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | button | Inherits hr.view_employee_form |
view_employee_tree_inherit_leave |
hr.employee.list.leave | hr.employee | xpath | Inherits hr.view_employee_tree |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
attendance_manager_id
Many2one → res.users
export_string_translation=False
related='employee_id.attendance_manager_id'
args: 'res.users'
check_in
Datetime
default=fields.Datetime.now
index=True
required=True
string='Check In'
tracking=True
check_out
Datetime
string='Check Out'
tracking=True
color
Integer
compute='_compute_color'
date
Date
compute='_compute_date'
index=True
precompute=True
required=True
store=True
string='Date'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
device_tracking_enabled
Boolean
related='employee_id.company_id.attendance_device_tracking'
employee_id
Many2one → hr.employee
default=_default_employee
group_expand='_read_group_employee_id'
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
expected_hours
Float
aggregator='sum'
compute='_compute_expected_hours'
store=True
string='Regular Hours'
in_browser
Char
readonly=True
string='Browser'
in_ip_address
Char
readonly=True
string='IP Address'
in_latitude
Float
aggregator=None
digits=(10, 7)
readonly=True
string='Latitude'
in_location
Char
help='Based on GPS-Coordinates if available or on IP Address'
in_longitude
Float
aggregator=None
digits=(10, 7)
readonly=True
string='Longitude'
in_mode
Selection
default='manual'
readonly=True
selection=[('kiosk', 'Kiosk'), ('systray', 'Systray'), ('manual', 'Manual'), ('technical', 'Technical')]
string='Mode'
is_manager
Boolean
compute='_compute_is_manager'
linked_overtime_ids
Many2many → hr.attendance.overtime.line
compute='_compute_linked_overtime_ids'
readonly=False
args: 'hr.attendance.overtime.line'
manager_id
Many2one → hr.employee
comodel_name='hr.employee'
export_string_translation=False
readonly=True
related='employee_id.parent_id'
out_browser
Char
readonly=True
out_ip_address
Char
readonly=True
out_latitude
Float
aggregator=None
digits=(10, 7)
readonly=True
out_location
Char
help='Based on GPS-Coordinates if available or on IP Address'
out_longitude
Float
aggregator=None
digits=(10, 7)
readonly=True
out_mode
Selection
default='manual'
readonly=True
selection=[('kiosk', 'Kiosk'), ('systray', 'Systray'), ('manual', 'Manual'), ('technical', 'Technical'), ('auto_check_out', 'Automatic Check-Out')]
overtime_hours
Float
compute='_compute_overtime_hours'
store=True
string='Over Time'
overtime_status
Selection
compute='_compute_overtime_status'
readonly=False
selection=[('to_approve', 'To Approve'), ('approved', 'Approved'), ('refused', 'Refused')]
store=True
tracking=True
validated_overtime_hours
Float
compute='_compute_validated_overtime_hours'
readonly=True
store=True
string='Extra Hours'
tracking=True
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
action_approve_overtime(self)
action_in_attendance_maps(self)
action_out_attendance_maps(self)
action_refuse_overtime(self)
action_try_kiosk(self)
copy(self, default=None)
create(self, vals_list)
get_kiosk_url(self)
has_demo_data(self)
unlink(self)
write(self, vals)
amount_rate
Float
default=1.0
required=True
args: 'Overtime pay rate'
company_id
Many2one
related='employee_id.company_id'
date
Date
index=True
required=True
string='Day'
duration
Float
default=0.0
required=True
string='Extra Hours'
employee_id
Many2one → hr.employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
is_manager
Boolean
compute='_compute_is_manager'
manual_duration
Float
compute='_compute_manual_duration'
readonly=False
store=True
string='Extra Hours (encoded)'
rule_ids
Many2many → hr.attendance.overtime.rule
string='Applied Rules'
args: 'hr.attendance.overtime.rule'
status
Selection
compute='_compute_status'
precompute=True
readonly=False
required=True
store=True
args: [('to_approve', 'To Approve'), ('approved', 'Approved'), ('refused', 'Refused')]
time_start
Datetime
string='Start'
time_stop
Datetime
string='Stop'
action_approve(self)
action_refuse(self)
write(self, vals)
amount_rate
Float
default=1.0
args: 'Rate'
base_off
Selection
default='quantity'
help="Base for overtime calculation.\nUse 'Quantity' when overtime hours are those in excess of a certain amount per day/week.\nUse 'Timing' when overtime hours happen on specific days or at specific times"
required=True
string='Based Off'
args: [('quantity', 'Quantity'), ('timing', 'Timing')]
company_id
Many2one
related='ruleset_id.company_id'
description
Html
employee_tolerance
Float
employer_tolerance
Float
expected_hours
Float
string='Usual work hours'
expected_hours_from_contract
Boolean
default=True
help='The attendance can go into negative extra hours to represent the missing hours compared to what is expected if the Absence Management setting is enabled.'
args: 'Hours from employee schedule'
information_display
Char
compute='_compute_information_display'
args: 'Information'
name
Char
required=True
paid
Boolean
quantity_period
Selection
default='day'
args: [('day', 'Day'), ('week', 'Week')]
resource_calendar_id
Many2one → resource.calendar
domain=[('flexible_hours', '=', False)]
string='Schedule'
args: 'resource.calendar'
ruleset_id
Many2one → hr.attendance.overtime.ruleset
index=True
required=True
args: 'hr.attendance.overtime.ruleset'
sequence
Integer
default=10
timing_start
Float
default=0
args: 'From'
timing_stop
Float
default=24
args: 'To'
timing_type
Selection
default='work_days'
args: [('work_days', 'On any working day'), ('non_work_days', 'On any non-working day'), ('leave', 'When employee is off'), ('schedule', 'Outside of a specific schedule')]
No public methods.
active
Boolean
default=True
readonly=False
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
country_id
Many2one → res.country
default=<expr>
args: 'res.country'
description
Html
name
Char
required=True
rate_combination_mode
Selection
default='max'
help='Controls how the rates from the different rules that apply are combined.\n Max: use the highest rate. (e.g.: combined for 150% and 120 = 150%)\n Sum: sum the *extra* pay (i.e. above 100%).\n e.g.: combined rate for 150% & 120% = 100% (baseline) + (150-100)% + (120-100)% = 170%\n'
required=True
string='Rate Combination Mode'
args: [('max', 'Maximum Rate'), ('sum', 'Sum of all rates')]
rule_ids
One2many → hr.attendance.overtime.rule
rules_count
Integer
compute='_compute_rules_count'
action_regenerate_overtimes(self)
attendance_ids
One2many → hr.attendance
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
args: 'hr.attendance', 'employee_id'
attendance_manager_id
Many2one → res.users
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
groups='hr_attendance.group_hr_attendance_officer'
help='The user set in Attendance will access the attendance of the employee through the dedicated app and will be able to edit them.'
readonly=False
store=True
string='Attendance Approver'
args: 'res.users'
attendance_state
Selection
compute='_compute_attendance_state'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
display_extra_hours
Boolean
related='company_id.hr_attendance_display_overtime'
hours_last_month
Float
compute='_compute_hours_last_month'
hours_last_month_display
Char
compute='_compute_hours_last_month'
groups='hr.group_hr_user'
hours_last_month_overtime
Float
compute='_compute_hours_last_month'
hours_previously_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
hours_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
store=True
args: 'hr.attendance'
last_attendance_worked_hours
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
related='last_attendance_id.check_in'
store=True
tracking=False
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
related='last_attendance_id.check_out'
store=True
tracking=False
overtime_ids
One2many → hr.attendance.overtime.line
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
args: 'hr.attendance.overtime.line', 'employee_id'
ruleset_id
Many2one
groups='hr.group_hr_manager'
inherited=True
readonly=False
related='version_id.ruleset_id'
total_overtime
Float
compute='_compute_total_overtime'
action_archive(self)
action_open_last_month_attendances(self)
create(self, vals_list)
get_overtime_data(self, domain=None, employee_id=None)
open_barcode_scanner(self)
write(self, vals)
attendance_manager_id
Many2one
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.attendance_manager_id'
attendance_state
Selection
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.attendance_state'
display_extra_hours
Boolean
related='company_id.hr_attendance_display_overtime'
hours_last_month
Float
related='employee_id.hours_last_month'
hours_last_month_overtime
Float
related='employee_id.hours_last_month_overtime'
hours_today
Float
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.hours_today'
last_attendance_id
Many2one
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.last_attendance_id'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.last_check_in'
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.last_check_out'
total_overtime
Float
readonly=True
related='employee_id.total_overtime'
action_open_last_month_attendances(self)
ruleset_id
Many2one → hr.attendance.overtime.ruleset
default=<expr>
domain=_domain_current_countries
groups='hr.group_hr_manager'
tracking=True
args: 'hr.attendance.overtime.ruleset'
No public methods.
No new fields.
Public methods (1)lazy_session_info(self)
absence_management
Boolean
default=False
string='Absence Management'
attendance_barcode_source
Selection
default='front'
string='Barcode Source'
args: [('scanner', 'Scanner'), ('front', 'Front Camera'), ('back', 'Back Camera')]
attendance_device_tracking
Boolean
default=False
string='Device & Location Tracking'
attendance_from_systray
Boolean
default=False
string='Attendance From Systray'
attendance_kiosk_delay
Integer
default=10
attendance_kiosk_key
Char
copy=False
default=<expr>
groups='hr_attendance.group_hr_attendance_user'
attendance_kiosk_mode
Selection
default='barcode_manual'
string='Attendance Mode'
args: [('barcode', 'Barcode / RFID'), ('barcode_manual', 'Barcode / RFID and Manual Selection'), ('manual', 'Manual Selection')]
attendance_kiosk_url
Char
compute='_compute_attendance_kiosk_url'
attendance_kiosk_use_pin
Boolean
string='Employee PIN Identification'
attendance_overtime_validation
Selection
default='no_validation'
string='Extra Hours Validation'
args: [('no_validation', 'Automatically Approved'), ('by_manager', 'Approved by Manager')]
auto_check_out
Boolean
default=False
string='Automatic Check Out'
auto_check_out_tolerance
Float
default=2
export_string_translation=False
hr_attendance_display_overtime
Boolean
string='Display Extra Hours'
overtime_company_threshold
Integer
default=0
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
default=0
string='Tolerance Time In Favor Of Employee'
write(self, vals)
absence_management
Boolean
readonly=False
related='company_id.absence_management'
attendance_barcode_source
Selection
readonly=False
related='company_id.attendance_barcode_source'
attendance_device_tracking
Boolean
readonly=False
related='company_id.attendance_device_tracking'
attendance_from_systray
Boolean
readonly=False
related='company_id.attendance_from_systray'
attendance_kiosk_delay
Integer
readonly=False
related='company_id.attendance_kiosk_delay'
attendance_kiosk_mode
Selection
readonly=False
related='company_id.attendance_kiosk_mode'
attendance_kiosk_url
Char
related='company_id.attendance_kiosk_url'
attendance_kiosk_use_pin
Boolean
readonly=False
related='company_id.attendance_kiosk_use_pin'
attendance_overtime_validation
Selection
readonly=False
related='company_id.attendance_overtime_validation'
auto_check_out
Boolean
readonly=False
related='company_id.auto_check_out'
auto_check_out_tolerance
Float
readonly=False
related='company_id.auto_check_out_tolerance'
hr_attendance_display_overtime
Boolean
readonly=False
related='company_id.hr_attendance_display_overtime'
overtime_company_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Employee'
get_values(self)
regenerate_kiosk_key(self)
set_values(self)
No new fields.
Public methods (0)No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_attendance.public_kiosk_mode |
Attendance Kiosk | ir.ui.view | qweb | New |
hr_attendance_employee_simple_tree_view |
hr.attendance.list | hr.attendance | list | New |
hr_attendance_management_view_filter |
hr_attendance_management_view_filter | hr.attendance | search | New |
hr_attendance_overtime_view_pivot |
hr.attendance.overtime.pivot | hr.attendance.overtime | pivot | New |
hr_attendance_validated_hours_employee_simple_tree_view |
hr.attendance.list | hr.attendance | list | New |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
hr_user_view_form |
hr.user.preferences.view.form.attendance.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_overtime_graph |
hr.attendance.overtime.graph | hr.attendance.overtime | graph | New |
view_attendance_overtime_search |
hr.attendance.overtime.search | hr.attendance.overtime | search | New |
view_attendance_overtime_tree |
hr.attendance.overtime.list | hr.attendance.overtime | list | New |
view_attendance_tree |
hr.attendance.list | hr.attendance | list | New |
view_attendance_tree_management |
hr.attendance.list | hr.attendance | list | New |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_employee_tree_inherit_leave |
hr.employee.list.leave | hr.employee | xpath | Inherits hr.view_employee_tree |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
tracking=True
check_out
Datetime
string='Check Out'
tracking=True
color
Integer
compute='_compute_color'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
group_expand='_read_group_employee_id'
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
expected_hours
Float
aggregator='sum'
compute='_compute_expected_hours'
store=True
string='Regular Hours'
in_browser
Char
readonly=True
string='Browser'
in_city
Char
readonly=True
string='City'
in_country_name
Char
help='Based on IP Address'
readonly=True
string='Country'
in_ip_address
Char
readonly=True
string='IP Address'
in_latitude
Float
aggregator=None
digits=(10, 7)
readonly=True
string='Latitude'
in_longitude
Float
aggregator=None
digits=(10, 7)
readonly=True
string='Longitude'
in_mode
Selection
default='manual'
readonly=True
selection=[('kiosk', 'Kiosk'), ('systray', 'Systray'), ('manual', 'Manual'), ('technical', 'Technical')]
string='Mode'
manager_id
Many2one → hr.employee
comodel_name='hr.employee'
export_string_translation=False
readonly=True
related='employee_id.parent_id'
no_validated_overtime_hours
Boolean
compute='_compute_no_validated_overtime_hours'
out_browser
Char
readonly=True
out_city
Char
readonly=True
out_country_name
Char
help='Based on IP Address'
readonly=True
out_ip_address
Char
readonly=True
out_latitude
Float
aggregator=None
digits=(10, 7)
readonly=True
out_longitude
Float
aggregator=None
digits=(10, 7)
readonly=True
out_mode
Selection
default='manual'
readonly=True
selection=[('kiosk', 'Kiosk'), ('systray', 'Systray'), ('manual', 'Manual'), ('technical', 'Technical'), ('auto_check_out', 'Automatic Check-Out')]
overtime_hours
Float
compute='_compute_overtime_hours'
store=True
string='Worked Extra Hours'
overtime_status
Selection
compute='_compute_overtime_status'
readonly=False
selection=[('to_approve', 'To Approve'), ('approved', 'Approved'), ('refused', 'Refused')]
store=True
tracking=True
validated_overtime_hours
Float
compute='_compute_validated_overtime_hours'
readonly=False
store=True
string='Validated Extra Hours'
tracking=True
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
action_approve_overtime(self)
action_in_attendance_maps(self)
action_out_attendance_maps(self)
action_refuse_overtime(self)
action_try_kiosk(self)
copy(self, default=None)
create(self, vals_list)
get_kiosk_url(self)
has_demo_data(self)
unlink(self)
write(self, vals)
adjustment
Boolean
default=False
company_id
Many2one
related='employee_id.company_id'
date
Date
string='Day'
duration
Float
default=0.0
required=True
string='Extra Hours'
duration_real
Float
default=0.0
help='Extra-hours including the threshold duration'
string='Extra Hours (Real)'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
init(self)
attendance_ids
One2many → hr.attendance
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
args: 'hr.attendance', 'employee_id'
attendance_manager_id
Many2one → res.users
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
groups='hr_attendance.group_hr_attendance_officer'
help='The user set in Attendance will access the attendance of the employee through the dedicated app and will be able to edit them.'
readonly=False
store=True
args: 'res.users'
attendance_state
Selection
compute='_compute_attendance_state'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
hours_last_month
Float
compute='_compute_hours_last_month'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
hours_last_month_display
Char
compute='_compute_hours_last_month'
groups='hr.group_hr_user'
hours_previously_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
hours_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
store=True
args: 'hr.attendance'
last_attendance_worked_hours
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
related='last_attendance_id.check_in'
store=True
tracking=False
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
related='last_attendance_id.check_out'
store=True
tracking=False
overtime_ids
One2many → hr.attendance.overtime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
args: 'hr.attendance.overtime', 'employee_id'
total_overtime
Float
compute='_compute_total_overtime'
compute_sudo=True
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
action_archive(self)
action_open_last_month_attendances(self)
action_open_last_month_overtime(self)
create(self, vals_list)
write(self, values)
No new fields.
Public methods (0)No public methods.
attendance_manager_id
Many2one
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.attendance_manager_id'
attendance_state
Selection
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.attendance_state'
hours_today
Float
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.hours_today'
last_attendance_id
Many2one
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.last_attendance_id'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.last_check_in'
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.last_check_out'
total_overtime
Float
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.total_overtime'
No public methods.
absence_management
Boolean
default=False
string='Absence Management'
attendance_barcode_source
Selection
default='front'
string='Barcode Source'
args: [('scanner', 'Scanner'), ('front', 'Front Camera'), ('back', 'Back Camera')]
attendance_from_systray
Boolean
default=True
string='Attendance From Systray'
attendance_kiosk_delay
Integer
default=10
attendance_kiosk_key
Char
copy=False
default=<expr>
groups='hr_attendance.group_hr_attendance_manager'
attendance_kiosk_mode
Selection
default='barcode_manual'
string='Attendance Mode'
args: [('barcode', 'Barcode / RFID'), ('barcode_manual', 'Barcode / RFID and Manual Selection'), ('manual', 'Manual Selection')]
attendance_kiosk_url
Char
compute='_compute_attendance_kiosk_url'
attendance_kiosk_use_pin
Boolean
string='Employee PIN Identification'
attendance_overtime_validation
Selection
default='no_validation'
string='Extra Hours Validation'
args: [('no_validation', 'Automatically Approved'), ('by_manager', 'Approved by Manager')]
auto_check_out
Boolean
default=False
string='Automatic Check Out'
auto_check_out_tolerance
Float
default=2
export_string_translation=False
hr_attendance_display_overtime
Boolean
string='Display Extra Hours'
overtime_company_threshold
Integer
default=0
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
default=0
string='Tolerance Time In Favor Of Employee'
write(self, vals)
absence_management
Boolean
readonly=False
related='company_id.absence_management'
attendance_barcode_source
Selection
readonly=False
related='company_id.attendance_barcode_source'
attendance_from_systray
Boolean
readonly=False
related='company_id.attendance_from_systray'
attendance_kiosk_delay
Integer
readonly=False
related='company_id.attendance_kiosk_delay'
attendance_kiosk_mode
Selection
readonly=False
related='company_id.attendance_kiosk_mode'
attendance_kiosk_url
Char
related='company_id.attendance_kiosk_url'
attendance_kiosk_use_pin
Boolean
readonly=False
related='company_id.attendance_kiosk_use_pin'
attendance_overtime_validation
Selection
readonly=False
related='company_id.attendance_overtime_validation'
auto_check_out
Boolean
readonly=False
related='company_id.auto_check_out'
auto_check_out_tolerance
Float
readonly=False
related='company_id.auto_check_out_tolerance'
hr_attendance_display_overtime
Boolean
readonly=False
related='company_id.hr_attendance_display_overtime'
overtime_company_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Employee'
get_values(self)
regenerate_kiosk_key(self)
set_values(self)
attendance_manager_id
Many2one
readonly=False
related='employee_id.attendance_manager_id'
attendance_state
Selection
related='employee_id.attendance_state'
display_extra_hours
Boolean
related='company_id.hr_attendance_display_overtime'
hours_last_month
Float
related='employee_id.hours_last_month'
hours_last_month_display
Char
related='employee_id.hours_last_month_display'
last_check_in
Datetime
related='employee_id.last_attendance_id.check_in'
last_check_out
Datetime
related='employee_id.last_attendance_id.check_out'
total_overtime
Float
related='employee_id.total_overtime'
SELF_READABLE_FIELDS(self)
action_open_last_month_attendances(self)
action_open_last_month_overtime(self)
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, vals)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_attendance.public_kiosk_mode |
Attendance Kiosk | ir.ui.view | qweb | New |
hr_attendance_employee_simple_tree_view |
hr.attendance.tree | hr.attendance | tree | New |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
hr_user_view_form |
hr.user.preferences.view.form.attendance.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_overtime_search |
hr.attendance.overtime.search | hr.attendance.overtime | search | New |
view_attendance_overtime_tree |
hr.attendance.overtime.tree | hr.attendance.overtime | tree | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_employee_tree_inherit_leave |
hr.employee.tree.leave | hr.employee | xpath | Inherits hr.view_employee_tree |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
tracking=True
check_out
Datetime
string='Check Out'
tracking=True
color
Integer
compute='_compute_color'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
in_browser
Char
readonly=True
string='Browser'
in_city
Char
readonly=True
string='City'
in_country_name
Char
help='Based on IP Address'
readonly=True
string='Country'
in_ip_address
Char
readonly=True
string='IP Address'
in_latitude
Float
digits=(10, 7)
readonly=True
string='Latitude'
in_longitude
Float
digits=(10, 7)
readonly=True
string='Longitude'
in_mode
Selection
default='manual'
readonly=True
selection=[('kiosk', 'Kiosk'), ('systray', 'Systray'), ('manual', 'Manual')]
string='Mode'
out_browser
Char
readonly=True
out_city
Char
readonly=True
out_country_name
Char
help='Based on IP Address'
readonly=True
out_ip_address
Char
readonly=True
out_latitude
Float
digits=(10, 7)
readonly=True
out_longitude
Float
digits=(10, 7)
readonly=True
out_mode
Selection
default='manual'
readonly=True
selection=[('kiosk', 'Kiosk'), ('systray', 'Systray'), ('manual', 'Manual')]
overtime_hours
Float
compute='_compute_overtime_hours'
store=True
string='Over Time'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
action_in_attendance_maps(self)
action_out_attendance_maps(self)
copy(self, default=None)
create(self, vals_list)
unlink(self)
write(self, vals)
adjustment
Boolean
default=False
company_id
Many2one
related='employee_id.company_id'
date
Date
string='Day'
duration
Float
default=0.0
required=True
string='Extra Hours'
duration_real
Float
default=0.0
help='Extra-hours including the threshold duration'
string='Extra Hours (Real)'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
init(self)
attendance_ids
One2many → hr.attendance
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
args: 'hr.attendance', 'employee_id'
attendance_manager_id
Many2one → res.users
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
groups='hr_attendance.group_hr_attendance_manager'
help='The user set in Attendance will access the attendance of the employee through the dedicated app and will be able to edit them.'
readonly=False
store=True
args: 'res.users'
attendance_state
Selection
compute='_compute_attendance_state'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
hours_last_month
Float
compute='_compute_hours_last_month'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
hours_last_month_display
Char
compute='_compute_hours_last_month'
hours_previously_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
hours_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
store=True
args: 'hr.attendance'
last_attendance_worked_hours
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
related='last_attendance_id.check_in'
store=True
tracking=False
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
related='last_attendance_id.check_out'
store=True
tracking=False
overtime_ids
One2many → hr.attendance.overtime
groups='hr_attendance.group_hr_attendance_officer,hr.group_hr_user'
args: 'hr.attendance.overtime', 'employee_id'
total_overtime
Float
compute='_compute_total_overtime'
compute_sudo=True
action_archive(self)
action_open_last_month_attendances(self)
action_open_last_month_overtime(self)
create(self, vals_list)
write(self, values)
No new fields.
Public methods (0)No public methods.
attendance_manager_id
Many2one
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.attendance_manager_id'
attendance_state
Selection
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.attendance_state'
hours_today
Float
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.hours_today'
last_attendance_id
Many2one
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.last_attendance_id'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.last_check_in'
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_officer'
related='employee_id.last_check_out'
total_overtime
Float
groups='hr_attendance.group_hr_attendance_officer'
readonly=True
related='employee_id.total_overtime'
No public methods.
attendance_barcode_source
Selection
default='front'
string='Barcode Source'
args: [('scanner', 'Scanner'), ('front', 'Front Camera'), ('back', 'Back Camera')]
attendance_from_systray
Boolean
default=True
string='Attendance From Systray'
attendance_kiosk_delay
Integer
default=10
attendance_kiosk_key
Char
copy=False
default=<expr>
groups='hr_attendance.group_hr_attendance_manager'
attendance_kiosk_mode
Selection
default='barcode_manual'
string='Attendance Mode'
args: [('barcode', 'Barcode / RFID'), ('barcode_manual', 'Barcode / RFID and Manual Selection'), ('manual', 'Manual Selection')]
attendance_kiosk_url
Char
compute='_compute_attendance_kiosk_url'
attendance_kiosk_use_pin
Boolean
string='Employee PIN Identification'
hr_attendance_display_overtime
Boolean
string='Display Extra Hours'
hr_attendance_overtime
Boolean
string='Count Extra Hours'
overtime_company_threshold
Integer
default=0
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
default=0
string='Tolerance Time In Favor Of Employee'
overtime_start_date
Date
string='Extra Hours Starting Date'
write(self, vals)
attendance_barcode_source
Selection
readonly=False
related='company_id.attendance_barcode_source'
attendance_from_systray
Boolean
readonly=False
related='company_id.attendance_from_systray'
attendance_kiosk_delay
Integer
readonly=False
related='company_id.attendance_kiosk_delay'
attendance_kiosk_mode
Selection
readonly=False
related='company_id.attendance_kiosk_mode'
attendance_kiosk_url
Char
related='company_id.attendance_kiosk_url'
attendance_kiosk_use_pin
Boolean
readonly=False
related='company_id.attendance_kiosk_use_pin'
hr_attendance_display_overtime
Boolean
readonly=False
related='company_id.hr_attendance_display_overtime'
hr_attendance_overtime
Boolean
readonly=False
string='Count Extra Hours'
overtime_company_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Employee'
overtime_start_date
Date
readonly=False
string='Extra Hours Starting Date'
get_values(self)
regenerate_kiosk_key(self)
set_values(self)
attendance_manager_id
Many2one
readonly=False
related='employee_id.attendance_manager_id'
attendance_state
Selection
related='employee_id.attendance_state'
display_extra_hours
Boolean
related='company_id.hr_attendance_display_overtime'
hours_last_month
Float
related='employee_id.hours_last_month'
hours_last_month_display
Char
related='employee_id.hours_last_month_display'
last_check_in
Datetime
related='employee_id.last_attendance_id.check_in'
last_check_out
Datetime
related='employee_id.last_attendance_id.check_out'
total_overtime
Float
related='employee_id.total_overtime'
SELF_READABLE_FIELDS(self)
action_open_last_month_attendances(self)
action_open_last_month_overtime(self)
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/hr_attendance |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Attendances |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Goffin Simon, Géry Debongnie, Wolfgang Taferner, Yannick Tivisse, qsm-odoo, Romeo Fragomeli, Victor Feyens, Gorash, William Braeckman, Kevin Baptiste, Philippe Wauthy, Víctor Martínez, Florian Damhaut, Audric Onockx (auon), Agustín Castro Bugallo, Abdelouahab (abla), Jinjiu Liu, Dossogne Bertrand, nda-odoo, Thomas Lefebvre (thle), tsm-odoo, stefanorigano (SRI), jugj-odoo, Abderraouf Ghrissi (abgh), Ahmed Mohamed, Martin Trigaux (mat), asno-odoo, Rob Coekaerts |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:52 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Check in/Check out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_attendance_report_view_graph |
hr.attendance.report.view.graph | hr.attendance.report | graph | New |
hr_attendance_report_view_pivot |
hr.attendance.report.view.pivot | hr.attendance.report | pivot | New |
hr_attendance_report_view_search |
hr.attendance.report.view.search | hr.attendance.report | search | New |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
hr_user_view_form |
hr.user.preferences.view.form.attendance.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_overtime_search |
hr.attendance.overtime.search | hr.attendance.overtime | search | New |
view_attendance_overtime_tree |
hr.attendance.overtime.tree | hr.attendance.overtime | tree | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
check_out
Datetime
string='Check Out'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
copy(self)
create(self, vals_list)
name_get(self)
unlink(self)
write(self, vals)
adjustment
Boolean
default=False
company_id
Many2one
related='employee_id.company_id'
date
Date
string='Day'
duration
Float
default=0.0
required=True
string='Extra Hours'
duration_real
Float
default=0.0
help='Extra-hours including the threshold duration'
string='Extra Hours (Real)'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
init(self)
check_in
Date
readonly=True
args: 'Check In'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
department_id
Many2one → hr.department
readonly=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
readonly=True
string='Employee'
args: 'hr.employee'
overtime_hours
Float
readonly=True
args: 'Extra Hours'
worked_hours
Float
readonly=True
args: 'Hours Worked'
init(self)
attendance_ids
One2many → hr.attendance
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
args: 'hr.attendance', 'employee_id'
attendance_state
Selection
compute='_compute_attendance_state'
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
hours_last_month
Float
compute='_compute_hours_last_month'
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
hours_last_month_display
Char
compute='_compute_hours_last_month'
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
hours_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
store=True
args: 'hr.attendance'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
related='last_attendance_id.check_in'
store=True
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
related='last_attendance_id.check_out'
store=True
overtime_ids
One2many → hr.attendance.overtime
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
args: 'hr.attendance.overtime', 'employee_id'
total_overtime
Float
compute='_compute_total_overtime'
compute_sudo=True
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
attendance_manual(self, next_action, entered_pin=None)
attendance_scan(self, barcode)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
attendance_state
Selection
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.attendance_state'
hours_today
Float
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.hours_today'
last_attendance_id
Many2one
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.last_attendance_id'
total_overtime
Float
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.total_overtime'
action_employee_kiosk_confirm(self)
No new fields.
Public methods (0)No public methods.
attendance_barcode_source
Selection
default='front'
string='Barcode Source'
args: [('scanner', 'Scanner'), ('front', 'Front Camera'), ('back', 'Back Camera')]
attendance_kiosk_delay
Integer
default=10
attendance_kiosk_mode
Selection
default='barcode_manual'
string='Attendance Mode'
args: [('barcode', 'Barcode / RFID'), ('barcode_manual', 'Barcode / RFID and Manual Selection'), ('manual', 'Manual Selection')]
hr_attendance_overtime
Boolean
string='Count Extra Hours'
overtime_company_threshold
Integer
default=0
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
default=0
string='Tolerance Time In Favor Of Employee'
overtime_start_date
Date
string='Extra Hours Starting Date'
write(self, vals)
attendance_barcode_source
Selection
readonly=False
related='company_id.attendance_barcode_source'
attendance_kiosk_delay
Integer
readonly=False
related='company_id.attendance_kiosk_delay'
attendance_kiosk_mode
Selection
readonly=False
related='company_id.attendance_kiosk_mode'
group_attendance_use_pin
Boolean
implied_group='hr_attendance.group_hr_attendance_use_pin'
string='Employee PIN'
hr_attendance_overtime
Boolean
readonly=False
string='Count Extra Hours'
overtime_company_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Employee'
overtime_start_date
Date
readonly=False
string='Extra Hours Starting Date'
get_values(self)
set_values(self)
attendance_state
Selection
related='employee_id.attendance_state'
hours_last_month
Float
related='employee_id.hours_last_month'
hours_last_month_display
Char
related='employee_id.hours_last_month_display'
last_check_in
Datetime
related='employee_id.last_attendance_id.check_in'
last_check_out
Datetime
related='employee_id.last_attendance_id.check_out'
total_overtime
Float
related='employee_id.total_overtime'
SELF_READABLE_FIELDS(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/hr_attendance |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Attendances |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Goffin Simon, Aaron Bohy, Barad Mahendra, Yannick Tivisse, Xavier-Do, Sébastien Theys, Julien Mougenot, nie, IEL, Mathieu Duckerts-Antoine, William Braeckman, Kevin Baptiste, Víctor Martínez, Florian Damhaut, Audric Onockx (auon), Agustín Castro Bugallo, Abdelouahab (abla), Jinjiu Liu, dht-odoo, nda-odoo, Thomas Lefebvre (thle), Leonardo Pavan Rocha, jugj-odoo, Marc Durepos, Ahmed Mohamed |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Check in/Check out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_attendance_report_view_graph |
hr.attendance.report.view.graph | hr.attendance.report | graph | New |
hr_attendance_report_view_pivot |
hr.attendance.report.view.pivot | hr.attendance.report | pivot | New |
hr_attendance_report_view_search |
hr.attendance.report.view.search | hr.attendance.report | search | New |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_form_inherit |
hr.attendance.form.inherit | hr.attendance | form | Inherits hr_attendance.hr_attendance_view_form |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
hr_user_view_form |
hr.user.preferences.view.form.attendance.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_overtime_search |
hr.attendance.overtime.search | hr.attendance.overtime | search | New |
view_attendance_overtime_tree |
hr.attendance.overtime.tree | hr.attendance.overtime | tree | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_attendance_tree_inherit |
hr.attendance.tree.inherit | hr.attendance | tree | Inherits hr_attendance.view_attendance_tree |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
check_out
Datetime
string='Check Out'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
copy(self)
create(self, vals_list)
name_get(self)
unlink(self)
write(self, vals)
adjustment
Boolean
default=False
company_id
Many2one
related='employee_id.company_id'
date
Date
string='Day'
duration
Float
default=0.0
required=True
string='Extra Hours'
duration_real
Float
default=0.0
help='Extra-hours including the threshold duration'
string='Extra Hours (Real)'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
init(self)
check_in
Date
readonly=True
args: 'Check In'
department_id
Many2one → hr.department
readonly=True
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
readonly=True
string='Employee'
args: 'hr.employee'
overtime_hours
Float
readonly=True
args: 'Extra Hours'
worked_hours
Float
readonly=True
args: 'Hours Worked'
init(self)
attendance_ids
One2many → hr.attendance
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
help='list of attendances for the employee'
args: 'hr.attendance', 'employee_id'
attendance_state
Selection
compute='_compute_attendance_state'
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
hours_last_month
Float
compute='_compute_hours_last_month'
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
hours_last_month_display
Char
compute='_compute_hours_last_month'
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
hours_today
Float
compute='_compute_hours_today'
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
store=True
args: 'hr.attendance'
last_check_in
Datetime
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
related='last_attendance_id.check_in'
store=True
last_check_out
Datetime
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
related='last_attendance_id.check_out'
store=True
overtime_ids
One2many → hr.attendance.overtime
groups='hr_attendance.group_hr_attendance_user,hr.group_hr_user'
args: 'hr.attendance.overtime', 'employee_id'
total_overtime
Float
compute='_compute_total_overtime'
compute_sudo=True
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance,hr.group_hr_user'
attendance_manual(self, next_action, entered_pin=None)
attendance_scan(self, barcode)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
attendance_state
Selection
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.attendance_state'
hours_today
Float
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.hours_today'
last_attendance_id
Many2one
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.last_attendance_id'
total_overtime
Float
groups='hr_attendance.group_hr_attendance_kiosk,hr_attendance.group_hr_attendance'
readonly=True
related='employee_id.total_overtime'
No public methods.
No new fields.
Public methods (0)No public methods.
hr_attendance_overtime
Boolean
string='Count Extra Hours'
overtime_company_threshold
Integer
default=0
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
default=0
string='Tolerance Time In Favor Of Employee'
overtime_start_date
Date
string='Extra Hours Starting Date'
write(self, vals)
group_attendance_use_pin
Boolean
implied_group='hr_attendance.group_hr_attendance_use_pin'
string='Employee PIN'
hr_attendance_overtime
Boolean
readonly=False
string='Count Extra Hours'
overtime_company_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Company'
overtime_employee_threshold
Integer
readonly=False
string='Tolerance Time In Favor Of Employee'
overtime_start_date
Date
readonly=False
string='Extra Hours Starting Date'
get_values(self)
set_values(self)
attendance_state
Selection
related='employee_id.attendance_state'
hours_last_month
Float
related='employee_id.hours_last_month'
hours_last_month_display
Char
related='employee_id.hours_last_month_display'
last_check_in
Datetime
related='employee_id.last_attendance_id.check_in'
last_check_out
Datetime
related='employee_id.last_attendance_id.check_out'
total_overtime
Float
related='employee_id.total_overtime'
SELF_READABLE_FIELDS(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/hr_attendance |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Attendances |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Xavier Morel, Goffin Simon, Aaron Bohy, GitHub, Barad Mahendra, Wolfgang Taferner, Yannick Tivisse, Adrien Dieudonne, Jorge Pinna Puissant, Xavier-Do, jvm-odoo, Julien Mougenot, Swapnesh Shah, nie, IEL, Mathieu Duckerts-Antoine, jbm-odoo, Arnaud Joset, William Braeckman, Kevin Baptiste, bve-odoo |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Check in/Check out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_attendance assets | ir.ui.view | qweb | Inherits web.assets_backend |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_form_inherit |
hr.attendance.form.inherit | hr.attendance | form | Inherits hr_attendance.hr_attendance_view_form |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
hr_user_view_form |
hr.user.preferences.view.form.attendance.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
qunit_suite |
hr attendance tests | ir.ui.view | qweb | Inherits web.qunit_suite_tests |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_attendance_tree_inherit |
hr.attendance.tree.inherit | hr.attendance | tree | Inherits hr_attendance.view_attendance_tree |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
check_out
Datetime
string='Check Out'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
copy(self)
name_get(self)
attendance_ids
One2many → hr.attendance
help='list of attendances for the employee'
args: 'hr.attendance', 'employee_id'
attendance_state
Selection
compute='_compute_attendance_state'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
hours_last_month
Float
compute='_compute_hours_last_month'
hours_last_month_display
Char
compute='_compute_hours_last_month'
hours_today
Float
compute='_compute_hours_today'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
store=True
args: 'hr.attendance'
last_check_in
Datetime
related='last_attendance_id.check_in'
store=True
last_check_out
Datetime
related='last_attendance_id.check_out'
store=True
attendance_manual(self, next_action, entered_pin=None)
attendance_scan(self, barcode)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
group_attendance_use_pin
Boolean
implied_group='hr_attendance.group_hr_attendance_use_pin'
string='Employee PIN'
No public methods.
attendance_state
Selection
related='employee_id.attendance_state'
hours_last_month
Float
related='employee_id.hours_last_month'
hours_last_month_display
Char
related='employee_id.hours_last_month_display'
last_check_in
Datetime
related='employee_id.last_attendance_id.check_in'
last_check_out
Datetime
related='employee_id.last_attendance_id.check_out'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/hr_attendance |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Attendances |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Goffin Simon, Nicolas Martinelli, Géry Debongnie, Aaron Bohy, GitHub, Wolfgang Taferner, Yannick Tivisse, Jorge Pinna Puissant, Adrian Torres, Xavier-Do, jvm-odoo, Sébastien Theys, Lucas Lefèvre, Naglis Jonaitis, Swapnesh Shah, nie, IEL, William Braeckman, Kevin Baptiste, pha-odoo, Sapan Zaveri |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - mail_bot - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Check in/Check out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_attendance assets | ir.ui.view | qweb | Inherits web.assets_backend |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_form_inherit |
hr.attendance.form.inherit | hr.attendance | form | Inherits hr_attendance.hr_attendance_view_form |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
hr_user_view_form |
hr.user.preferences.view.form.attendance.inherit | res.users | xpath | Inherits hr.res_users_view_form_profile |
qunit_suite |
hr attendance tests | ir.ui.view | qweb | Inherits web.qunit_suite |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_attendance_tree_inherit |
hr.attendance.tree.inherit | hr.attendance | tree | Inherits hr_attendance.view_attendance_tree |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
check_out
Datetime
string='Check Out'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
copy(self)
name_get(self)
attendance_ids
One2many → hr.attendance
help='list of attendances for the employee'
args: 'hr.attendance', 'employee_id'
attendance_state
Selection
compute='_compute_attendance_state'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
hours_last_month
Float
compute='_compute_hours_last_month'
hours_last_month_display
Char
compute='_compute_hours_last_month'
hours_today
Float
compute='_compute_hours_today'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
store=True
args: 'hr.attendance'
last_check_in
Datetime
related='last_attendance_id.check_in'
store=True
last_check_out
Datetime
related='last_attendance_id.check_out'
store=True
attendance_manual(self, next_action, entered_pin=None)
attendance_scan(self, barcode)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
group_attendance_use_pin
Boolean
implied_group='hr_attendance.group_hr_attendance_use_pin'
string='Employee PIN'
No public methods.
attendance_state
Selection
related='employee_id.attendance_state'
hours_last_month
Float
related='employee_id.hours_last_month'
hours_last_month_display
Char
related='employee_id.hours_last_month_display'
last_check_in
Datetime
related='employee_id.last_attendance_id.check_in'
last_check_out
Datetime
related='employee_id.last_attendance_id.check_out'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/hr_attendance |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Adrien Dieudonne, RomainLibert, Jorge Pinna Puissant, Adrian Torres, Xavier-Do, fw-bot, Kinjal Mehta, David Beguin |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Check in/Check out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_attendance assets | ir.ui.view | qweb | Inherits web.assets_backend |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
print_employee_badge |
print_employee_badge | ir.ui.view | qweb | New |
qunit_suite |
hr attendance tests | ir.ui.view | qweb | Inherits web.qunit_suite |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_employee_filter_inherit_hr_attendance |
hr.employee.filter.inherit.attendance | hr.employee | xpath | Inherits hr.view_employee_filter |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_employee_kanban_inherit_hr_attendance |
hr.employee | hr.employee | templates | Inherits hr.hr_kanban_view_employees |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
check_out
Datetime
string='Check Out'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
copy(self)
name_get(self)
attendance_ids
One2many → hr.attendance
help='list of attendances for the employee'
args: 'hr.attendance', 'employee_id'
attendance_state
Selection
compute='_compute_attendance_state'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance Status'
barcode
Char
copy=False
default=_default_random_barcode
help='ID used for employee identification.'
string='Badge ID'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
store=True
args: 'hr.attendance'
manual_attendance
Boolean
compute='_compute_manual_attendance'
help='The employee will have access to the "My Attendances" menu to check in and out from his session'
inverse='_inverse_manual_attendance'
string='Manual Attendance'
pin
Char
copy=False
default=_default_random_pin
help='PIN used to Check In/Out in Kiosk Mode (if enabled in Configuration).'
string='PIN'
attendance_action(self, next_action)
attendance_action_change(self)
attendance_manual(self, next_action, entered_pin=None)
attendance_scan(self, barcode)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
group_attendance_use_pin
Boolean
implied_group='hr_attendance.group_hr_attendance_use_pin'
string='Employee PIN'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/hr_attendance |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Christophe Simonis, Xavier Morel, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Aaron Bohy, GitHub, Olivier Colson, Yannick Tivisse, qsm-odoo, Martin Geubelle, Odoo Online, Laurent Smet, DVE, Denis Vermylen, Alexandre Saunier |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Check in/Check out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_attendance assets | ir.ui.view | qweb | Inherits web.assets_backend |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
print_employee_badge |
print_employee_badge | ir.ui.view | qweb | New |
qunit_suite |
hr attendance tests | ir.ui.view | qweb | Inherits web.qunit_suite |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.attendance | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | xpath | Inherits hr.view_employee_form |
view_employee_kanban_inherit_hr_attendance |
hr.employee | hr.employee | templates | Inherits hr.hr_kanban_view_employees |
view_hr_attendance_kanban |
hr.attendance.kanban | hr.attendance | kanban | New |
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
check_out
Datetime
string='Check Out'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
copy(self)
name_get(self)
attendance_ids
One2many → hr.attendance
help='list of attendances for the employee'
args: 'hr.attendance', 'employee_id'
attendance_state
Selection
compute='_compute_attendance_state'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance'
barcode
Char
copy=False
default=_default_random_barcode
help='ID used for employee identification.'
string='Badge ID'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
args: 'hr.attendance'
manual_attendance
Boolean
compute='_compute_manual_attendance'
help='The employee will have access to the "My Attendances" menu to check in and out from his session'
inverse='_inverse_manual_attendance'
string='Manual Attendance'
pin
Char
copy=False
default=_default_random_pin
help='PIN used to Check In/Out in Kiosk Mode (if enabled in Configuration).'
string='PIN'
attendance_action(self, next_action)
attendance_action_change(self)
attendance_manual(self, next_action, entered_pin=None)
attendance_scan(self, barcode)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
group_attendance_use_pin
Boolean
implied_group='hr_attendance.group_hr_attendance_use_pin'
string='Employee PIN'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/hr_attendance |
| VERSION | |
| VERSION | 2.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Denis Ledoux, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Julien Legros, qdp-odoo, Géry Debongnie, Aaron Bohy, Jeremy Kersten, Lucas Perais (lpe), Yannick Tivisse, Denis Vermylen (dve) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - bus - web_tour - resource - report - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Check in/Check out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_attendance assets | ir.ui.view | qweb | Inherits web.assets_backend |
hr_attendance_view_config |
base.config.setting.hr.form.attendance | base.config.settings | form | New |
hr_attendance_view_filter |
hr_attendance_view_filter | hr.attendance | search | New |
hr_attendance_view_form |
hr.attendance.form | hr.attendance | form | New |
hr_attendance_view_graph |
hr.attendance.graph | hr.attendance | graph | New |
hr_attendance_view_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employees_view_kanban |
hr.employee.kanban | hr.employee | kanban | New |
print_employee_badge |
print_employee_badge | ir.ui.view | qweb | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_employee_form_inherit_hr_attendance |
hr.employee | hr.employee | field | Inherits hr.view_employee_form |
view_employee_kanban_inherit_hr_attendance |
hr.employee | hr.employee | field | Inherits hr.hr_kanban_view_employees |
group_attendance_use_pin
Selection
help='Enable or disable employee PIN identification at check in'
implied_group='hr_attendance.group_hr_attendance_use_pin'
string='Employee PIN'
args: [(0, 'Employees do not need to enter their PIN to check in manually in the "Kiosk Mode".'), (1, 'Employees must enter their PIN to check in manually in the "Kiosk Mode".')]
No public methods.
check_in
Datetime
default=fields.Datetime.now
required=True
string='Check In'
check_out
Datetime
string='Check Out'
department_id
Many2one → hr.department
readonly=True
related='employee_id.department_id'
string='Department'
args: 'hr.department'
employee_id
Many2one → hr.employee
default=_default_employee
index=True
ondelete='cascade'
required=True
string='Employee'
args: 'hr.employee'
worked_hours
Float
compute='_compute_worked_hours'
readonly=True
store=True
string='Worked Hours'
copy(self)
name_get(self)
attendance_ids
One2many → hr.attendance
help='list of attendances for the employee'
args: 'hr.attendance', 'employee_id'
attendance_state
Selection
compute='_compute_attendance_state'
selection=[('checked_out', 'Checked out'), ('checked_in', 'Checked in')]
string='Attendance'
barcode
Char
copy=False
default=_default_random_barcode
help='ID used for employee identification.'
string='Badge ID'
last_attendance_id
Many2one → hr.attendance
compute='_compute_last_attendance_id'
args: 'hr.attendance'
manual_attendance
Boolean
compute='_compute_manual_attendance'
help='The employee will have access to the "My Attendances" menu to check in and out from his session'
inverse='_inverse_manual_attendance'
string='Manual Attendance'
pin
Char
copy=False
default=_default_random_pin
help='PIN used to Check In/Out in Kiosk Mode (if enabled in Configuration).'
string='PIN'
attendance_action(self, next_action)
attendance_action_change(self)
attendance_manual(self, next_action, entered_pin=None)
attendance_scan(self, barcode)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/hr_attendance |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Richard Mathot, Géry Debongnie, Aaron Bohy, Yannick Tivisse, qsm-odoo, Martin Geubelle |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - bus - resource - web_tip - report |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Sign in/Sign out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_attendance assets | ir.ui.view | qweb | Inherits web.assets_backend |
edit_attendance_reason |
hr.action.reason.form | hr.action.reason | form | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
report_attendanceerrors |
report_attendanceerrors | ir.ui.view | qweb | New |
view_attendance_form |
hr.attendance.form | hr.attendance | form | New |
view_attendance_reason |
hr.action.reason.tree | hr.action.reason | tree | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_attendance_who |
hr.attendance.tree | hr.attendance | tree | New |
view_hr_attendance_error |
Attendance Report Error | hr.attendance.error | form | New |
view_hr_attendance_filter |
view_hr_attendance_filter | hr.attendance | search | New |
view_hr_attendance_graph |
hr.attendance.graph | hr.attendance | graph | New |
view_hr_attendance_pivot |
hr.attendance.pivot | hr.attendance | pivot | New |
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/hr_attendance |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Foram Katharotiya (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Fabien Meghazi, ggh-openerp, Christophe Simonis, Xavier Morel, Cedric Snauwaert, Simon Lejeune, Paramjit Singh Sahota, Richard Mathot, Géry Debongnie, Aaron Bohy, ged-odoo, sgo@tinyerp.com |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/employees |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - resource - board - report |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Sign in/Sign out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_attendance assets | ir.ui.view | qweb | Inherits web.assets_backend |
edit_attendance_reason |
hr.action.reason.form | hr.action.reason | form | New |
hr_attendace_group |
hr.config.settings.inherit | hr.config.settings | data | Inherits hr.view_human_resources_configuration |
hr_attendance_employee |
hr.employee.form1 | hr.employee | field | Inherits hr.view_employee_form |
report_attendanceerrors |
report_attendanceerrors | ir.ui.view | qweb | New |
view_attendance_form |
hr.attendance.form | hr.attendance | form | New |
view_attendance_reason |
hr.action.reason.tree | hr.action.reason | tree | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_attendance_who |
hr.attendance.tree | hr.attendance | tree | New |
view_hr_attendance_error |
Attendance Report Error | hr.attendance.error | form | New |
view_hr_attendance_filter |
view_hr_attendance_filter | hr.attendance | search | New |
view_hr_attendance_graph |
hr.attendance.graph | hr.attendance | graph | New |
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/7.0/hr_attendance |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Jagdish Panchal (Open ERP), Twinkle Christian (OpenERP), Cecile Tonglet, Jalpesh Patel (OpenERP), Randhir Mayatra (OpenERP), Stephane Wirtel, Odoo Translation Bot, Turkesh Patel (Open ERP), Numerigraphe - Lionel Sausin, Christophe Matthieu, Pinakin Nayi (OpenERP), Harry (OpenERP), Antonin Bourguignon, pankita shah (Open ERP), Martin Trigaux, Ajay Chauhan (OpenERP), Purnendu Singh (OpenERP), Fabien Pinckaers, Meera Trambadia (OpenERP), Olivier Dony, Twinkle (OpenERP), Tejas Tank, Vo Minh Thu, Hardik, pso (OpenERP), Sbh (Openerp), Amit Patel (OpenERP), Launchpad Translations on behalf of openerp, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Mayur Maheshwari (OpenERP), Jigar Amin - OpenERP, Sanjay Gohel (Open ERP), Alexis de Lattre, help, Fabien Meghazi, niv-openerp, Christophe Simonis, Dharti Ratani (OpenERP), Bhumi Thakkar (Open ERP), Vaibhav (OpenERP) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:43:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web_kanban - web - resource - process - board |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Sign in/Sign out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
edit_attendance_reason |
hr.action.reason.form | hr.action.reason | form | New |
hr_attendace_group |
hr.config.settings.inherit | hr.config.settings | data | Inherits hr.view_human_resources_configuration |
hr_attendance_employee |
hr.employee.form1 | hr.employee | field | Inherits hr.view_employee_form |
view_attendance_form |
hr.attendance.form | hr.attendance | form | New |
view_attendance_reason |
hr.action.reason.tree | hr.action.reason | tree | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_attendance_who |
hr.attendance.tree | hr.attendance | tree | New |
view_hr_attendance_error |
Attendance Report Error | hr.attendance.error | form | New |
view_hr_attendance_filter |
view_hr_attendance_filter | hr.attendance | search | New |
view_hr_attendance_month |
Attendances Report Monthly | hr.attendance.month | form | New |
view_hr_attendance_week |
Attendances Report Weekly | hr.attendance.week | form | New |
No models found for this module.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/6.1/hr_attendance |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Jagdish Panchal (Open ERP), Rucha (Open ERP), Stephane Wirtel, Fabien Pinckaers, Meera Trambadia (OpenERP), Olivier Dony, Divyesh Makwana (Open ERP), Thibault Delavallée, Vo Minh Thu, pso (OpenERP), Launchpad Translations on behalf of openerp, Quentin (OpenERP), vro, niv-openerp, Ujjvala Collins (OpenERP), , Carlos Vásquez, Husen Daudi, Els Van Vossel, Israel Fermin Montilla, Hardik Ansodariy (OpenERP), rch-openerp, Bharat (OpenERP), mtr, fp, Mustufa Rangwala, Hemendra Paregi (Open ERP) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:41:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - base_tools - resource - process - board |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
This module aims to manage employee's attendances.
==================================================
Keeps account of the attendances of the employees on the basis of the
actions(Sign in/Sign out) performed by them.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
edit_attendance_reason |
hr.action.reason.form | hr.action.reason | form | New |
hr_attendance_employee |
hr.employee.form1 | hr.employee | field | Inherits hr.view_employee_form |
view_attendance_form |
hr.attendance.form | hr.attendance | form | New |
view_attendance_reason |
hr.action.reason.tree | hr.action.reason | tree | New |
view_attendance_tree |
hr.attendance.tree | hr.attendance | tree | New |
view_attendance_who |
hr.attendance.tree | hr.attendance | tree | New |
view_hr_attendance_error |
Attendance Report Error | hr.attendance.error | form | New |
view_hr_attendance_filter |
view_hr_attendance_filter | hr.attendance | search | New |
view_hr_attendance_message |
hr.sign.in.out.form | hr.sign.in.out | form | New |
view_hr_attendance_month |
Attendances Report Monthly | hr.attendance.month | form | New |
view_hr_attendance_si_ask |
hr.sign.in.out.ask.form | hr.sign.in.out.ask | form | New |
view_hr_attendance_sigh_in_out |
hr.sign.in.out.form | hr.sign.in.out | form | New |
view_hr_attendance_so_ask |
hr.sign.in.out.ask.form | hr.sign.in.out.ask | form | New |
view_hr_attendance_week |
Attendances Report Weekly | hr.attendance.week | form | New |
No models found for this module.