TIP: You can type at any time to perform a new search.
Employee Calendar Planning
hr_employee_calendar_planning · OCA/hr
Security findings
Migration considerations
- Raw `cr.execute()` INSERT/UPDATE/DELETE bypasses the ORM (no compute/constrains/tracking/mail): `UPDATE resource_calendar SET stored_flexible_hours = flexible_hours, stored_full_time_required_hours = full_time_required_hours, stored_hours_per_day = hours_per_day, stored_hours_per_week = hours_per_week` - re-check the table/column names still match after upgrading. migration-raw-sql-write · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/hr · module folder · Try on Runboat
- Module version
- Category
- Human Resources
- Folder size
- 0.18 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/hr
- Last tracking update
- 2026-09-22 17:33:36
- Authors
- Odoo Community Association (OCA), Tecnativa
- Maintainers
- Odoo Community Association (OCA), Tecnativa
- Committers
- Miquel Raïch, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Vicent-S73
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- hr_attendance_employee_calendar_planning
- Description
This module allows to manage employee working time with profiles by date intervals. The profiles are regular working time calendars, but they are treated as master ones here, allowing you to compose complexes working times by dates. Under the hook, a unique working time is created for each employee with the proper composition for not affecting the rest of the functionality linked to this model.
Code Analysis
Views touched (2)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
resource_calendar_form |
resource.calendar | form | Inherits resource.resource_calendar_form | |
view_employee_form |
hr.employee | form | Inherits hr.view_employee_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (1)
-
calendar_idsOne2many → hr.employee.calendarcomodel_name='hr.employee.calendar'copy=Trueinverse_name='employee_id'string='Calendar planning'
-
copy(self, default=None) -
copy_global_leaves(self) -
create(self, vals_list)@api.model_create_multi -
default_get(self, fields)@api.modelSet calendar_ids default value to cover all use cases. -
regenerate_calendar(self)
New fields (5)
-
calendar_idMany2one → resource.calendarcheck_company=Truecomodel_name='resource.calendar'ondelete='restrict'required=Truestring='Working Time' -
company_idMany2onerelated='employee_id.company_id' -
date_endDatestring='End Date' -
date_startDatestring='Start Date' -
employee_idMany2one → hr.employeecomodel_name='hr.employee'ondelete='cascade'required=Truestring='Employee'
-
create(self, vals)@api.model_create_multi -
unlink(self) -
write(self, vals)
New fields (12)
-
activeBooleandefault=True -
auto_generateBoolean -
employee_calendar_idsOne2many → hr.employee.calendarargs: 'hr.employee.calendar', 'calendar_id' -
employee_idsOne2many → hr.employeeargs: 'hr.employee', 'resource_calendar_id' -
flexible_hoursBooleansearch='_search_flexible_hours'store=False -
full_time_required_hoursFloatsearch='_search_full_time_required_hours'store=False -
hours_per_dayFloatsearch='_search_hours_per_day'store=False -
hours_per_weekFloatsearch='_search_hours_per_week'store=False -
stored_flexible_hoursBooleancompute='_compute_stored_flexible_hours'help="When enabled, it will allow employees to work flexibly, without relying on the company's working schedule (working hours)."store=True -
stored_full_time_required_hoursFloatcompute='_compute_stored_full_time_required_hours'help='Number of hours to work on the company schedule to be considered as fulltime.'store=True -
stored_hours_per_dayFloatcompute='_compute_stored_hours_per_day'digits=(2, 2)help='Average hours per day a resource is supposed to work with this calendar.'readonly=Falsestore=True -
stored_hours_per_weekFloatcompute='_compute_stored_hours_per_week'readonly=Falsestore=True
-
create(self, vals)@api.model_create_multi -
write(self, vals)
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…