Commit Graph

10 Commits

Author SHA1 Message Date
Ross b5525bd3fb feat: add group management for workers and shifts, including validation for overlapping groups 2026-07-09 22:14:30 +01:00
Ross 0f31dfe1a9 feat: add exact shifts functionality to Worker class and update related logic in RotaBuilder 2026-07-08 22:33:33 +01:00
Ross e288585cd3 feat: add max days per week block constraint to Worker class
- Introduced a new method `add_max_days_per_week_block_constraint` to the Worker class.
- This method allows for the addition of constraints that limit the number of days a worker can be assigned within a specified sliding block of weeks.
- The method accepts parameters for maximum days, the week block size, and optional dates to ignore.
2026-06-02 13:50:31 +01:00
Ross 935b4baaba Add ignore_dates field to worker constraints and implement related tests 2026-05-19 21:31:05 +01:00
Ross dee80ed4fa Add constraints for maximum days and unique shifts per week block in worker model 2026-05-19 21:23:09 +01:00
Ross c71ae4285a Change weekend_shift_target_number type from int to float for improved precision 2026-01-07 20:38:21 +00:00
Ross d66ddf29ad Add support for avoiding shifts on specific dates with reasons 2026-01-05 22:07:23 +00:00
Ross e6bdd4a09e Add support for avoiding shifts on specific dates for workers
- Introduced AvoidShiftOnDates model to define constraints for workers.
- Enhanced Worker class to register avoid-shift rules with the rota builder.
- Implemented logic in RotaBuilder to enforce these constraints during shift assignment.
- Added tests to verify functionality for avoiding shifts on single dates and date ranges.
2026-01-05 21:44:34 +00:00
Ross 108bb572a7 Enhance hard day dependency handling with ignore dates and improve warning visibility 2025-12-16 22:41:43 +00:00
Ross eb95f5fa6d . 2025-12-09 11:55:00 +00:00