more data
This commit is contained in:
@@ -10,11 +10,21 @@ phases' placements as fixed/locked.
|
||||
from . import grid
|
||||
|
||||
|
||||
def _is_lab_room_type(room_type):
|
||||
"""
|
||||
Real room data uses free-text room_type labels (e.g. "Computing
|
||||
Laboratories", "electrical", "Classrooms", "Civil", "physics") rather
|
||||
than a fixed classroom/lab enum. Any label mentioning "lab" is treated
|
||||
as a lab room; everything else is a classroom.
|
||||
"""
|
||||
return "lab" in (room_type or "").lower()
|
||||
|
||||
|
||||
class PlacementBoard:
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
self.classrooms = [r for r in data["rooms"] if r["room_type"] == "classroom"]
|
||||
self.labs = [r for r in data["rooms"] if r["room_type"] == "lab"]
|
||||
self.classrooms = [r for r in data["rooms"] if not _is_lab_room_type(r["room_type"])]
|
||||
self.labs = [r for r in data["rooms"] if _is_lab_room_type(r["room_type"])]
|
||||
|
||||
# busy[(day, slot_index)] -> set of keys already occupied
|
||||
self.room_busy = {}
|
||||
|
||||
Reference in New Issue
Block a user