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.
This commit is contained in:
+21
-21
@@ -1024,9 +1024,9 @@ def test_worker_hard_day_dependency():
|
||||
worker2 = workers[1]
|
||||
worker3 = workers[2]
|
||||
|
||||
worker1.add_hard_day_dependency("Mon", "Tue")
|
||||
worker2.add_hard_day_dependency("Mon", "Wed")
|
||||
worker3.add_hard_day_dependency("Mon", "Thu")
|
||||
worker1.add_hard_day_dependency({"Mon", "Tue"})
|
||||
worker2.add_hard_day_dependency({"Mon", "Wed"})
|
||||
worker3.add_hard_day_dependency({"Mon", "Thu"})
|
||||
|
||||
Rota.add_shifts(
|
||||
SingleShift(
|
||||
@@ -1080,15 +1080,15 @@ def test_worker_hard_day_dependency_weekend():
|
||||
worker3 = workers[2]
|
||||
worker4 = workers[3]
|
||||
|
||||
worker1.add_hard_day_dependency("Fri", "Sun")
|
||||
worker2.add_hard_day_dependency("Fri", "Sun")
|
||||
worker3.add_hard_day_dependency("Fri", "Sun")
|
||||
worker4.add_hard_day_dependency("Fri", "Sun")
|
||||
worker1.add_hard_day_dependency({"Fri", "Sun"})
|
||||
worker2.add_hard_day_dependency({"Fri", "Sun"})
|
||||
worker3.add_hard_day_dependency({"Fri", "Sun"})
|
||||
worker4.add_hard_day_dependency({"Fri", "Sun"})
|
||||
|
||||
worker1.add_hard_day_exclusion("Fri", "Sat")
|
||||
worker2.add_hard_day_exclusion("Fri", "Sat")
|
||||
worker3.add_hard_day_exclusion("Fri", "Sat")
|
||||
worker4.add_hard_day_exclusion("Fri", "Sat")
|
||||
worker1.add_hard_day_exclusion({"Fri", "Sat"})
|
||||
worker2.add_hard_day_exclusion({"Fri", "Sat"})
|
||||
worker3.add_hard_day_exclusion({"Fri", "Sat"})
|
||||
worker4.add_hard_day_exclusion({"Fri", "Sat"})
|
||||
|
||||
Rota.add_shifts(
|
||||
SingleShift(
|
||||
@@ -1128,15 +1128,15 @@ def test_worker_hard_day_dependency_weekend2():
|
||||
worker3 = workers[2]
|
||||
worker4 = workers[3]
|
||||
|
||||
worker1.add_hard_day_dependency("Fri", "Sun")
|
||||
worker2.add_hard_day_dependency("Fri", "Sun")
|
||||
worker3.add_hard_day_dependency("Fri", "Sun")
|
||||
worker4.add_hard_day_dependency("Fri", "Sun")
|
||||
worker4.add_hard_day_dependency("Fri", "Sat")
|
||||
worker1.add_hard_day_dependency({"Fri", "Sun"})
|
||||
worker2.add_hard_day_dependency({"Fri", "Sun"})
|
||||
worker3.add_hard_day_dependency({"Fri", "Sun"})
|
||||
worker4.add_hard_day_dependency({"Fri", "Sun"})
|
||||
worker4.add_hard_day_dependency({"Fri", "Sat"})
|
||||
|
||||
worker1.add_hard_day_exclusion("Fri", "Sat")
|
||||
worker2.add_hard_day_exclusion("Fri", "Sat")
|
||||
worker3.add_hard_day_exclusion("Fri", "Sat")
|
||||
worker1.add_hard_day_exclusion({"Fri", "Sat"})
|
||||
worker2.add_hard_day_exclusion({"Fri", "Sat"})
|
||||
worker3.add_hard_day_exclusion({"Fri", "Sat"})
|
||||
|
||||
Rota.add_shifts(
|
||||
SingleShift(
|
||||
@@ -1260,7 +1260,7 @@ def test_worker_force_assign_with_and_hard_days():
|
||||
worker.add_force_assign_with("a", "b")
|
||||
|
||||
#worker.add_hard_day_dependency("Sat", "Sun")
|
||||
worker.add_hard_day_dependency("Mon", "Tue")
|
||||
worker.add_hard_day_dependency({"Mon", "Tue"})
|
||||
|
||||
Rota.add_shifts(
|
||||
SingleShift(
|
||||
@@ -1294,7 +1294,7 @@ def test_worker_force_assign_with_and_hard_days_weekend():
|
||||
worker.add_force_assign_with("a", "b")
|
||||
|
||||
#worker.add_hard_day_dependency("Sat", "Sun")
|
||||
worker.add_hard_day_dependency("Sat", "Sun")
|
||||
worker.add_hard_day_dependency({"Sat", "Sun"})
|
||||
|
||||
Rota.add_shifts(
|
||||
SingleShift(
|
||||
|
||||
Reference in New Issue
Block a user