100 Commits
Author SHA1 Message Date
Ross d577b2cdf8 feat: add time limit parsing function and update time_to_run parameter to accept string inputs 2026-07-14 22:00:26 +01:00
Ross 0874f05126 feat: add "ir nights" to the list of sites 2026-07-14 21:52:39 +01:00
Ross 6ca3db86cb add prtial shifts 2026-07-14 21:38:59 +01:00
Ross 96e6a0d625 feat: update CSV URL in load_leave and load_academy functions 2026-07-14 21:05:20 +01:00
Ross fc2413538c feat: add TODO to update time_to_run for string input conversion to seconds 2026-07-14 21:03:33 +01:00
Ross 5ff78faa07 feat: implement sub-block handling for shifts and update constraints in RotaBuilder 2026-07-10 08:08:51 +01:00
Ross d1fbbe2dc9 feat: add condition to check for week-day combinations before adding constraints in RotaBuilder 2026-07-09 22:39:38 +01:00
Ross b5525bd3fb feat: add group management for workers and shifts, including validation for overlapping groups 2026-07-09 22:14:30 +01:00
Ross 33f50c7278 feat: adjust max days per week block constraint from 4 to 3 2026-07-09 21:32:26 +01:00
Ross 981cc314f0 feat: update worker shift conditions for specific email addresses 2026-07-09 20:49:44 +01:00
Ross 0861e371e9 feat: update weeks parameter to 26 and adjust constraint options in RotaBuilder 2026-07-09 12:06:20 +01:00
Ross 13c5ae598a feat: add exact shifts display in worker details and update HTML export functionality 2026-07-08 22:38:38 +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 02598cb665 refactor: update default parameters and improve CSV download links in gen_proc and leave modules 2026-07-08 21:34:13 +01:00
Ross 09c8124cdd add workers check 2026-06-03 20:38:10 +01:00
Ross 2949327d39 match cons export format 2026-06-03 20:29:33 +01:00
Ross ea68885ff3 start rota export in grid format 2026-06-03 20:15:34 +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 4cad1158c6 use cons sync view 2026-05-20 21:12:42 +01:00
Ross 4bb4f5b97a Refactor total shifts calculation in generateExtra and worker row processing for improved clarity and error handling 2026-05-19 15:33:37 +01:00
Ross d741d7e23c Update shift configurations and parameters in RotaBuilder for enhanced scheduling 2026-01-07 22:28:58 +00:00
Ross 64c4189d5f Add functionality to handle missing shifts in RotaBuilder and include worker grades in the timetable 2026-01-07 22:14:43 +00:00
Ross 277f14747a Increase max_number in LimitGradeNumberConstraint from 1 to 2 for better shift allocation and add internal leave removal functionality 2026-01-07 21:58:50 +00:00
Ross e637c5ac60 Increase max_shifts in MaxShiftsPerWeekConstraint from 1 to 2 for improved scheduling flexibility 2026-01-07 20:59:37 +00: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 c248e67304 Refactor site title rendering in RotaBuilder to improve clarity and consistency in timetable display 2026-01-07 20:37:04 +00:00
Ross 628114ad91 Refactor timetable and shifts generation to ensure proper HTML structure with sticky headers 2026-01-07 20:26:18 +00:00
Ross f8c6e38841 Add sticky header styles and improve visibility for timetable display 2026-01-07 20:10:18 +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 62e48ef205 Improve date parsing in OOP handling to support additional formats and enhance error reporting. 2026-01-05 20:03:41 +00:00
Ross b98c28401f Enhance error handling in leave loading and update date parsing logic; add new site preference for Exeter shifts. 2026-01-05 20:01:41 +00:00
Ross 94b921192f Refactor gen.py and gen_proc.py to improve shift handling and add constraints; update leave.py to fetch new leave data source. 2026-01-05 17:46:33 +00:00
Ross 1bae1246f9 Update rota configuration for February 2026 and refine shift constraints handling 2025-12-18 22:06:31 +00:00
Ross 3ba4467812 . 2025-12-17 14:12:58 +00:00
Ross 9d187dfa75 Refactor weekend day balancing logic by commenting out unused option and storing adjusted targets on worker objects 2025-12-17 12:39:11 +00:00
Ross a54b5db5d2 Enhance weekend shift balancing by adding quadratic penalty and adjusting deviation handling 2025-12-17 12:24:26 +00:00
Ross 0851b992fb Enhance weekend shift handling by adding per-day adjustments and improving prior allocation parsing 2025-12-17 12:13:56 +00:00
Ross 710a2aa7c8 Add weekend shift adjustment calculations and update worker summary display 2025-12-17 11:44:13 +00:00
Ross a347ad7777 . 2025-12-17 11:27:16 +00:00
Ross bf3b685923 Add prior adjustments summary to worker display and enhance data attributes 2025-12-17 11:09:33 +00:00
Ross 378caf63ff . 2025-12-17 10:56:21 +00:00
Ross 83444ac402 Add weekend day balancing options and summary counts for shifts 2025-12-17 10:43:37 +00:00
Ross 81b2c85d61 Add exclude_dates option to PreShiftConstraint and PostShiftConstraint 2025-12-17 09:19:45 +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 51ed25d04c Add warning for forced assignments in HardDayDependency 2025-12-16 22:35:21 +00:00
Ross 8e580440e0 . 2025-12-16 21:34:11 +00:00
Ross 0b732a0b09 start updating cons rota 2025-12-16 20:58:09 +00:00
Ross 4a8c478a73 Add allow_self option to PostShiftConstraint and PreShiftConstraint for flexible shift assignment 2025-12-08 17:47:19 +00:00
Ross 3f4d8068eb Add max days per week block constraint and exclude days for shift constraints 2025-09-18 21:00:31 +01:00
Ross fdce572f6d Fix weekend shift initial extraction and update worker start/end dates for leave requests 2025-09-18 20:14:23 +01:00
Ross 331d57dd8f Enhance leave request handling and improve error logging in RotaBuilder 2025-09-17 22:25:28 +01:00
Ross e1aec5011c Add option to allow force assignment with leave conflict in RotaBuilder 2025-09-17 21:35:52 +01:00
Ross 47bfb16891 Refactor logging implementation to use Loguru for improved logging management and add warnings for unknown leave values and worker site validation. 2025-09-17 21:21:23 +01:00
Ross 7cd2cec65c Add toggle for showing shift names and button to remove shift colours in timetable 2025-08-12 11:53:11 +01:00
Ross d55b1d38ea Add worker checkboxes and help text to shift timetable for improved usability 2025-08-12 11:43:53 +01:00
Ross 0599586f47 Add worker filter input to shift timetable and update rendering logic 2025-08-12 11:20:51 +01:00
Ross f31a54d512 Refactor renderShiftTimetable to enhance list view with date, week, and day headers, and improve worker assignment display with color coding for selected shifts. 2025-08-12 11:19:21 +01:00
Ross 7b16f8d82a Add shift selection toggle and help text to timetable options 2025-08-12 10:28:08 +01:00
Ross 3b3d432694 Refactor RotaBuilder export functionality and enhance display of run times with improved layout 2025-08-11 16:31:27 +01:00
Ross 45837597d9 Add color coding for selected shifts in timetable and update button styles 2025-08-11 14:16:27 +01:00
Ross b72d33189c Add ignore_shifts parameter to PostShiftConstraint and PreShiftConstraint 2025-08-11 13:56:43 +01:00
Ross 76f3b48c1d Refactor shift constraints in tests to use new constraint classes
- Updated test cases in `test_workers.py` to replace dictionary-based constraints with instances of `PreShiftConstraint`, `PostShiftConstraint`, and `MaxShiftsPerWeekConstraint`.
- Added a new test `test_worker_assign_as_block_preference2` to verify worker preferences for block assignments.
- Marked tests as slow where appropriate to improve test suite performance.
2025-08-11 13:03:08 +01:00
Ross d7bcfce78c Implement hard day exclusions for workers and add corresponding tests 2025-08-10 22:00:31 +01:00
Ross 48710f50e8 Enhance Rota Management System
- Updated .gitignore to exclude 'cons/' directory.
- Refactored gen_cons.py to extract leave and rota assignments from calendar data, and added functionality to handle shift assignments from rota data.
- Modified timetable.css to include styles for force-assigned shifts.
- Enhanced shifts.py to manage forced assignments and handle leave conflicts, including new methods for date-based assignments.
- Updated workers.py to introduce structured hard day dependencies and exclusions, allowing for more flexible scheduling.
- Adjusted test_workers.py to reflect changes in hard day dependency and exclusion methods, ensuring compatibility with new data structures.
2025-08-09 22:11:39 +01:00
Ross 6bd47ba5b4 Add forced shift assignment functionality for workers and update tests 2025-08-08 08:23:42 +01:00
Ross cf48c3c168 latest rotas 2025-07-07 17:49:21 +01:00
Ross adccf8211c fix min summed shifts 2025-06-30 09:23:33 +01:00
Ross 48d6b748d1 fix the weekend count for multishits 2025-06-22 22:34:05 +01:00
Ross 2443ac285b fix a few more things 2025-06-22 22:20:52 +01:00
Ross 82bc624a33 a few more fixes and improvements 2025-06-22 11:48:33 +01:00
Ross 8402cc92fd fix bug with pre / post shift constraints 2025-06-22 10:53:17 +01:00
Ross fc3102ec47 numberous fixes and improvements 2025-06-22 09:38:03 +01:00
Ross 06a551bb68 a lot of changes 2025-06-21 11:45:58 +01:00
Ross e15cc6ee51 rewrite test 2025-06-08 14:25:30 +01:00
Ross d7e5f9e5f1 numerous improvemts 2025-06-08 14:00:15 +01:00
Ross ad75b6b8b5 fix multishifts 2025-06-07 13:02:45 +01:00
Ross b81570f457 basic multishift per day assignement 2025-06-06 22:36:58 +01:00
Ross a647416720 major test refactoring 2025-06-05 23:40:28 +01:00
Ross b9ca76aea1 update rota 2025-06-05 23:40:17 +01:00
Ross e46c24df88 add custom display char for shift 2025-06-05 21:59:26 +01:00
Ross 242a664f49 ... 2025-01-25 08:49:14 +00:00
Ross 8459a4b3a9 start adding locum availability 2025-01-20 10:56:47 +00:00
Ross 7ce4677921 add worker requirements 2025-01-01 21:58:48 +00:00
Ross 9af01a3415 fix shift solver (objective didn't seem to be used) 2024-12-31 22:51:26 +00:00
Ross f0b9ee0ebc start working on shift paring balancing 2024-12-26 16:39:04 +00:00
Ross 1ed5f4fbcd work towards paring of shifts 2024-12-24 10:41:46 +00:00
Ross 70dc279a02 update from last round 2024-12-23 16:56:53 +00:00
Ross 51b4e89601 update requirements (removing fastapi) 2024-12-23 16:56:32 +00:00
Ross 44c21e3c6a update gen.py 2024-01-07 17:52:44 +00:00
Ross a7e1fa7171 numberous fixes 2024-01-07 17:52:36 +00:00
Ross 5d55ed77a8 update for current rota 2024-01-01 14:56:48 +00:00
Ross 8c28e7155a update for latest proc run 2023-12-27 19:15:00 +00:00
Ross 3d064a75b9 add shift worker names constraint 2023-12-27 19:12:08 +00:00
Ross 740836e31a add limit 2023-12-27 17:55:54 +00:00
Ross 7235b05840 . 2023-06-22 22:02:13 +01:00
Ross 97b3d938bb . 2023-06-22 21:02:18 +01:00
Ross e0d87b71a8 . 2023-06-22 20:58:40 +01:00
Ross cbbdc8d318 . 2023-06-22 20:56:19 +01:00
Ross beda17c7e8 . 2023-06-19 17:28:44 +01:00