| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Discuss (mail) |
| Lines of code | 952 |
| Technical Name |
gb_shift_planning_rota |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Discuss (mail) |
| Lines of code | 952 |
| Technical Name |
gb_shift_planning_rota |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Shift Planning & Rota
Build staff rotas, track availability, spot coverage gaps and publish shifts
Building staff rotas in spreadsheets means double-bookings, missed time-off and no visibility of coverage gaps until someone fails to turn up. Manual scheduling also hides labour cost until payroll, and Odoo's advanced planning is Enterprise-locked. This pure-Community app lets hospitality, retail, care and any shift-based operation plan costed shifts per employee and role, capture availability and approved leave, and detect coverage gaps and conflicts before publishing. One-click weekly duplication and bulk publish make recurring rotas fast to produce on Odoo Community alone.
Key Features
Weekly rota plans with costed totals
gb.rota.plan covers a Monday-to-Sunday week with a draft, published and closed lifecycle. _compute_totals rolls up shift_count, total_hours and a Monetary total_cost so each rota shows its labour spend, and action_publish writes published on every shift in one step.
Costed shift assignments
Each gb.rota.shift records start, stop, unpaid break_minutes and hourly_cost. _compute_hours derives duration_hours, paid_hours (gross minus break) and cost, falling back to the role default_hourly_cost when the shift has no rate of its own.
Four-way conflict detection
_compute_conflicts checks double-booking via _find_overlapping_shifts, approved time-off clashes, availability breaches and rest-period breaches. It sets conflict_level to error or warning, and action_publish refuses to publish while any blocking double-booking or time-off clash remains.
Employee availability windows
gb.rota.availability stores per-day hour_from/hour_to windows with an available flag for explicit unavailability. A constrains check blocks overlapping windows, and the covers method feeds the shift availability test so staff are not rostered outside their stated hours.
Approved time-off blocks
gb.rota.timeoff records requested, approved or refused absence with action_approve/action_refuse. Its overlaps method only counts approved blocks, which the shift engine treats as a blocking conflict so you never schedule someone who is off.
Coverage requirements and gap analysis
gb.rota.coverage sets a required_headcount per day, hour window and role. _compute_assigned counts distinct employees actually rostered in that window and computes gap, surplus and a gap/ok/over status, surfacing under- and over-staffing on the plan as gap_count.
Reusable roles with rest rules
gb.rota.role holds a colour, default_hourly_cost and a min_rest_hours value (default 11h) used by the rest-period conflict check. Roles drive both shift costing and the statutory rest gap between consecutive shifts.
One-click rota duplication
The gb.rota.duplicate.wizard clones an existing rota to a new week via copy_to_week, shifting every shift's start and stop dates by the week offset and resetting them to unpublished. Coverage requirements are copied unless you untick the option.
Use Cases
Screenshots
Rotas
Roles
All Shifts
Skills
Why Choose This Module
A complete rota and scheduling tool for Odoo Community. Plan shifts per employee and role, capture staff availability and time-off, detect over- and under-coverage against a required-headcount template, and publish the rota so staff can see their assigned shifts — with no Enterprise dependency.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: LGPL-3
- Languages: 35+
- Author: Baris Genc
- Dependencies: hr
- Support: odoo@gencbaris.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module