Hr Attendance Validation

hr_attendance_validation
REPOSITORY
REPOSITORYOCA/hr-attendance
GIT
GIThttps://github.com/OCA/hr-attendance.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/hr-attendance/tree/14.0/hr_attendance_validation
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYHuman Resources
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Pierre Verkest
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Pierre Verkest
COMMITTERS
COMMITTERSEnric Tobella, Pierre Verkest, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/hr-attendance
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/hr-attendance:
    - hr_attendance_overtime
    - hr_attendance_reason
    - hr_attendance_autoclose
    - hr_attendance_modification_tracking
odoo/odoo:
    - hr_attendance
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - barcodes
    - hr_holidays
    - calendar
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
assets_backend hr_attendance_validation assets ir.ui.view qweb Inherits web.assets_backend
edit_holiday_status_form hr.leave.type.form hr.leave.type field Inherits hr_holidays.edit_holiday_status_form
hr_attendance_validation_sheet_view_form hr.attendance.validation.sheet.form hr.attendance.validation.sheet form New
hr_attendance_validation_sheet_view_form_manager hr.attendance.validation.sheet.form.manager hr.attendance.validation.sheet field Inherits hr_attendance_validation_sheet_view_form
hr_attendance_validation_sheet_view_pivot hr.attendance.validation.sheet.pivot hr.attendance.validation.sheet pivot New
hr_attendance_validation_sheet_view_tree hr.attendance.validation.sheet.tree hr.attendance.validation.sheet tree New
hr_attendance_validation_sheet_views_filter hr.attendance.validation.sheet.filter hr.attendance.validation.sheet search New
hr_attendance_view_form hr.attendance.form hr.attendance field Inherits hr_attendance.hr_attendance_view_form
hr_attendance_view_search hr.attendance.search hr.attendance filter Inherits hr_attendance.hr_attendance_view_filter
hr_attendance_view_tree hr.attendance.tree hr.attendance xpath Inherits hr_attendance.view_attendance_tree
res_config_settings_view_form res.config.settings.view.form.inherit.enrj.solaire res.config.settings xpath Inherits hr_attendance.res_config_settings_view_form
Models touched (7)

New fields (2)
  • is_overtime_due Boolean
    default=False help='Whether the overtime is due or not. By default overtime is not due until a manager validates it.' string='Is overtime due'
  • validation_sheet_id Many2one → hr.attendance.validation.sheet
    string='Validation sheet' args: 'hr.attendance.validation.sheet'
Public methods (3)
  • create(self, *args, **kwargs)
    @api.model
  • unlink(self, *args, **kwargs)
  • write(self, *args, **kwargs)

New fields (19)
  • attendance_due_ids One2many → hr.attendance
    compute='_compute_attendance_due_ids' string='Valid attendances' args: 'hr.attendance'
  • attendance_hours Float
    compute='_compute_attendances_hours' help='Compute number of attendance lines not marked as overtime' args: 'Attendance (hours)'
  • attendance_ids One2many → hr.attendance
    inverse_name='validation_sheet_id' string='Attendances' args: 'hr.attendance'
  • attendance_total_hours Float
    compute='_compute_attendances_hours' help='Validated attendances. Sum attendance and due overtime lines.' args: 'Total Attendance (hours)'
  • calendar_id Many2one → resource.calendar
    related='employee_id.resource_calendar_id' string='Calendar' args: 'resource.calendar'
  • compensatory_hour Float
    help='Compensatory hours that will be allocated to the employee.' args: 'Compensatory hour'
  • date_from Date
    default=_default_from_date required=True string='Date from'
  • date_to Date
    default=_default_to_date required=True string='Date to'
  • employee_id Many2one → hr.employee
    index=True ondelete='cascade' required=True string='Employee' args: 'hr.employee'
  • leave_allocation_id Many2one → hr.leave.allocation
    help='Automatically generated on validation if compensatory_hour > 0' string='Leave allocation' args: 'hr.leave.allocation'
  • leave_hours Float
    compute='_compute_leaves' help='Compute number of leaves in hours' args: 'Leaves (hours)'
  • leave_id Many2one → hr.leave
    help='Automatically generated on validation if regularization_compensatory_hour_taken > 0' string='Leave' args: 'hr.leave'
  • leave_ids Many2many → hr.leave
    string='Leaves' args: 'hr.leave'
  • overtime_due_hours Float
    compute='_compute_attendances_hours' help='Compute number of attendance lines marked as overtime which are marked as due' args: 'Overtime due (hours)'
  • overtime_not_due_hours Float
    compute='_compute_attendances_hours' help='Compute number of attendance lines marked as overtime which are not due' args: 'Overtime not due (hours)'
  • regularization_compensatory_hour_taken Float
    help='Compensatory hours that will be counted as leaves for the employee.' args: "Regularization compensatory hours' taken"
  • require_regeneration Boolean
    default=False help="Couldn't properly call action retrieve lines in onchange instead alert user to click on it when needs." args: 'Require regeneration'
  • state Selection
    default='draft' required=True string='State' args: [('draft', 'To review'), ('validated', 'Validated')]
  • theoretical_hours Float
    help='Theoretical calendar hours to spend by week.' related='calendar_id.total_hours' string='Theoretical (hours)'
Public methods (5)
  • action_retrieve_attendance_and_leaves(self)
    Action to retrieve both attendance and leave lines
  • action_to_review(self)
  • action_validate(self)
    Method to validate this sheet and generate leave allocation if necessary
  • generate_reviews(self)
    @api.model
  • name_get(self)

New fields (1)
  • hours_current_week Float
    compute='_compute_hours_current_week'
Public methods (0)

No public methods.

New fields (1)
  • validation_sheet_id Many2one → hr.attendance.validation.sheet
    string='Validation sheet' args: 'hr.attendance.validation.sheet'
Public methods (0)

No public methods.

New fields (1)
  • ignored_in_attendance_validation Boolean
Public methods (0)

No public methods.

New fields (1)
  • hr_attendance_compensatory_leave_type_id Many2one → hr.leave.type
    config_parameter='hr_attendance_validation.leave_type_id' default=<expr> help='Compensatory leave type used while validate weekly attendance sheet.' required=True args: 'hr.leave.type', 'Overtime compensatory leave type'
Public methods (0)

No public methods.

New fields (1)
  • total_hours Float
    compute='_compute_total_hours' help='Total theoretical hours used to compute compensatory days' args: 'Total calendar hours'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/hr-attendance
PULL REQUEST
PULL REQUEST[17.0][MIG] hr_attendance_validation (#221)