From f008389200c3a9d92b03c840096ef18958a3f04c Mon Sep 17 00:00:00 2001 From: kris7011 Date: Sun, 1 Nov 2026 10:27:09 +0100 Subject: [PATCH 1/4] feat(editor): rule-checked manual schedule edits with undo Add ScheduleEditor for adding, removing and replacing employees on a generated schedule. Every change is checked with Employee's own scheduler rules (skill, capacity, one shift per day, rest time) plus "already assigned" and "fully staffed"; a refused change raises ScheduleEditError with all reasons and leaves the schedule unchanged. Edits are recorded as commands with list positions, so undo restores the exact previous state. Also adds calendar grouping and Danish rule descriptions for the GUI. Co-Authored-By: Claude Opus 5.5 --- app/schedule_editor.py | 226 ++++++++++++++++++++++++++++++++++ tests/test_schedule_editor.py | 215 ++++++++++++++++++++++++++++++++ 2 files changed, 441 insertions(+) create mode 100644 app/schedule_editor.py create mode 100644 tests/test_schedule_editor.py diff --git a/app/schedule_editor.py b/app/schedule_editor.py new file mode 100644 index 0000000..e76c0e0 --- /dev/null +++ b/app/schedule_editor.py @@ -0,0 +1,226 @@ +"""Manual changes to a generated schedule, validated by the same rules as the scheduler, with undo. + +The editor changes the in-memory Shift and Employee objects only. It never writes to the CSV +files the schedule was loaded from. +""" + +from dataclasses import dataclass, field +from datetime import date + +from app.constants import ShiftType +from app.models import Employee, Shift + +SHIFT_TYPE_ORDER = [ShiftType.DAY, ShiftType.EVENING, ShiftType.NIGHT] + + +class ScheduleEditError(ValueError): + """Raised when a change would break a scheduling rule. `reasons` lists every broken rule.""" + + def __init__(self, reasons: list[str]): + super().__init__("; ".join(reasons)) + self.reasons = reasons + + +@dataclass +class _Placement: + """Where an assignment sits in both lists, so undo can put it back in the same position.""" + + shift: Shift + employee: Employee + shift_index: int + employee_index: int + + +@dataclass +class ScheduleEdit: + description: str + removed: list[_Placement] = field(default_factory=list) + added: list[_Placement] = field(default_factory=list) + + +_BLOCKER_TEXTS = { + "at capacity": "har nået sit maksimale antal vagter", + "already has shift same day": "har allerede en vagt samme dag", + "rest time violation": "får for kort hviletid (nat eller aften før en vagt)", + "shift is fully staffed": "vagten er fuldt bemandet", + "already assigned to this shift": "er allerede på vagten", + "not assigned to this shift": "er ikke på vagten", +} + + +def describe_blocker(blocker: str) -> str: + """Danish text for a rule the change would break, as shown in the GUI.""" + if blocker.startswith("missing skill "): + return f"mangler kompetencen {blocker.removeprefix('missing skill ')}" + + return _BLOCKER_TEXTS.get(blocker, blocker) + + +def describe_shift(shift: Shift) -> str: + return f"{shift.date} {shift.shift_type.display_name} ({shift.required_skill})" + + +class ScheduleEditor: + def __init__(self, employees: list[Employee], shifts: list[Shift]): + self.employees = employees + self.shifts = shifts + self._undo_stack: list[ScheduleEdit] = [] + + @property + def can_undo(self) -> bool: + return bool(self._undo_stack) + + @property + def history(self) -> list[str]: + """Descriptions of the edits that can be undone, newest first.""" + return [edit.description for edit in reversed(self._undo_stack)] + + @property + def edit_count(self) -> int: + return len(self._undo_stack) + + def assignment_blockers(self, shift: Shift, employee: Employee) -> list[str]: + """Every reason the employee cannot be added to the shift; empty when the change is allowed.""" + if employee in shift.assigned_employees: + return ["already assigned to this shift"] + + blockers = [] + + if shift.is_fully_staffed: + blockers.append("shift is fully staffed") + + # The scheduler's own checks: capacity, skill, same day and rest time. + blockers.extend(employee.get_shift_blockers(shift)) + + return blockers + + def candidates(self, shift: Shift) -> list[tuple[Employee, list[str]]]: + """All employees not on the shift, each with the reasons they cannot take it (if any).""" + return [ + (employee, self.assignment_blockers(shift, employee)) + for employee in self.employees + if employee not in shift.assigned_employees + ] + + def assign(self, shift: Shift, employee: Employee) -> ScheduleEdit: + blockers = self.assignment_blockers(shift, employee) + + if blockers: + raise ScheduleEditError(blockers) + + edit = ScheduleEdit(description=f"Tilføjede {employee.name} til {describe_shift(shift)}") + edit.added.append(self._add(shift, employee)) + self._undo_stack.append(edit) + + return edit + + def unassign(self, shift: Shift, employee: Employee) -> ScheduleEdit: + if employee not in shift.assigned_employees: + raise ScheduleEditError(["not assigned to this shift"]) + + edit = ScheduleEdit(description=f"Fjernede {employee.name} fra {describe_shift(shift)}") + edit.removed.append(self._remove(shift, employee)) + self._undo_stack.append(edit) + + return edit + + def replace(self, shift: Shift, current: Employee, replacement: Employee) -> ScheduleEdit: + """Swaps one employee on a shift for another; the replacement is checked as if the current one had left.""" + if current not in shift.assigned_employees: + raise ScheduleEditError(["not assigned to this shift"]) + + removed = self._remove(shift, current) + blockers = self.assignment_blockers(shift, replacement) + + if blockers: + self._restore(removed) + raise ScheduleEditError(blockers) + + edit = ScheduleEdit( + description=f"Erstattede {current.name} med {replacement.name} på {describe_shift(shift)}", + removed=[removed], + added=[self._add(shift, replacement)], + ) + self._undo_stack.append(edit) + + return edit + + def undo(self) -> ScheduleEdit | None: + """Reverts the latest edit exactly, including the order of the assignment lists.""" + if not self._undo_stack: + return None + + edit = self._undo_stack.pop() + + for placement in reversed(edit.added): + placement.shift.assigned_employees.remove(placement.employee) + placement.employee.assigned_shifts.remove(placement.shift) + + for placement in reversed(edit.removed): + self._restore(placement) + + return edit + + def clear_history(self) -> None: + """Called when a new schedule is generated: earlier edits belong to the old schedule.""" + self._undo_stack.clear() + + @staticmethod + def _add(shift: Shift, employee: Employee) -> _Placement: + placement = _Placement( + shift=shift, + employee=employee, + shift_index=len(shift.assigned_employees), + employee_index=len(employee.assigned_shifts), + ) + shift.assigned_employees.append(employee) + employee.assigned_shifts.append(shift) + + return placement + + @staticmethod + def _remove(shift: Shift, employee: Employee) -> _Placement: + placement = _Placement( + shift=shift, + employee=employee, + shift_index=shift.assigned_employees.index(employee), + employee_index=employee.assigned_shifts.index(shift), + ) + shift.assigned_employees.pop(placement.shift_index) + employee.assigned_shifts.pop(placement.employee_index) + + return placement + + @staticmethod + def _restore(placement: _Placement) -> None: + placement.shift.assigned_employees.insert(placement.shift_index, placement.employee) + placement.employee.assigned_shifts.insert(placement.employee_index, placement.shift) + + +@dataclass +class CalendarCell: + date: str + shift_type: ShiftType + shifts: list[Shift] + + @property + def missing_staff(self) -> int: + return sum(max(shift.missing_staff_count, 0) for shift in self.shifts) + + +def build_calendar(shifts: list[Shift]) -> tuple[list[str], list[ShiftType], dict[tuple[str, ShiftType], CalendarCell]]: + """Groups shifts into a date × shift type grid for the calendar view. + + Returns the dates in order, the shift types in day order, and the cells that have shifts. + """ + dates = sorted({shift.date for shift in shifts}, key=date.fromisoformat) + cells: dict[tuple[str, ShiftType], CalendarCell] = {} + + for shift in shifts: + key = (shift.date, shift.shift_type) + cells.setdefault(key, CalendarCell(shift.date, shift.shift_type, [])).shifts.append(shift) + + for cell in cells.values(): + cell.shifts.sort(key=lambda shift: (shift.priority, shift.required_skill)) + + return dates, SHIFT_TYPE_ORDER, cells diff --git a/tests/test_schedule_editor.py b/tests/test_schedule_editor.py new file mode 100644 index 0000000..d8ea8c4 --- /dev/null +++ b/tests/test_schedule_editor.py @@ -0,0 +1,215 @@ +import pytest + +from app.constants import ShiftType +from app.models import Employee, Shift +from app.schedule_editor import ScheduleEditError, ScheduleEditor, build_calendar, describe_blocker + + +def make_schedule(): + anna = Employee(name="Anna", max_shifts=2, skills=["CT"]) + kris = Employee(name="Kris", max_shifts=3, skills=["CT", "MR"]) + peter = Employee(name="Peter", max_shifts=3, skills=["MR"]) + + monday_day = Shift(date="2026-05-11", shift_type=ShiftType.DAY, required_skill="CT", required_staff=2) + monday_night = Shift(date="2026-05-11", shift_type=ShiftType.NIGHT, required_skill="MR") + tuesday_day = Shift(date="2026-05-12", shift_type=ShiftType.DAY, required_skill="CT") + + editor = ScheduleEditor([anna, kris, peter], [monday_day, monday_night, tuesday_day]) + + return editor, anna, kris, peter, monday_day, monday_night, tuesday_day + + +def snapshot(editor: ScheduleEditor): + """The full assignment state, including list order, for exact comparisons.""" + return ( + [[employee.name for employee in shift.assigned_employees] for shift in editor.shifts], + [[id(shift) for shift in employee.assigned_shifts] for employee in editor.employees], + ) + + +def test_assign_adds_the_employee_on_both_sides(): + editor, anna, _, _, monday_day, _, _ = make_schedule() + + edit = editor.assign(monday_day, anna) + + assert monday_day.assigned_employees == [anna] + assert anna.assigned_shifts == [monday_day] + assert edit.description == "Tilføjede Anna til 2026-05-11 Dag (CT)" + assert editor.can_undo + + +@pytest.mark.parametrize( + ("setup", "employee_name", "shift_index", "expected"), + [ + ("none", "Peter", 0, "missing skill CT"), + ("kris_monday_day", "Kris", 1, "already has shift same day"), + ("kris_monday_night", "Kris", 2, "rest time violation"), + ("anna_two_shifts", "Anna", 0, "at capacity"), + ], +) +def test_assign_reuses_the_scheduler_rules(setup, employee_name, shift_index, expected): + editor, anna, kris, peter, monday_day, monday_night, tuesday_day = make_schedule() + extra_day = Shift(date="2026-05-13", shift_type=ShiftType.DAY, required_skill="CT") + extra_day_2 = Shift(date="2026-05-14", shift_type=ShiftType.DAY, required_skill="CT") + + if setup == "kris_monday_day": + editor.assign(monday_day, kris) + elif setup == "kris_monday_night": + editor.assign(monday_night, kris) + elif setup == "anna_two_shifts": + editor.assign(extra_day, anna) + editor.assign(extra_day_2, anna) + + employee = {"Anna": anna, "Kris": kris, "Peter": peter}[employee_name] + shift = [monday_day, monday_night, tuesday_day][shift_index] + before = snapshot(editor) + + with pytest.raises(ScheduleEditError) as error: + editor.assign(shift, employee) + + assert expected in error.value.reasons + assert snapshot(editor) == before + + +def test_a_fully_staffed_shift_cannot_take_more_people(): + editor, anna, kris, peter, monday_day, monday_night, _ = make_schedule() + editor.assign(monday_night, peter) + + with pytest.raises(ScheduleEditError) as error: + editor.assign(monday_night, kris) + + assert error.value.reasons == ["shift is fully staffed"] + + +def test_assigning_the_same_employee_twice_is_refused(): + editor, anna, _, _, monday_day, _, _ = make_schedule() + editor.assign(monday_day, anna) + + with pytest.raises(ScheduleEditError) as error: + editor.assign(monday_day, anna) + + assert error.value.reasons == ["already assigned to this shift"] + + +def test_candidates_list_every_employee_not_on_the_shift_with_their_blockers(): + editor, anna, kris, peter, monday_day, _, _ = make_schedule() + editor.assign(monday_day, anna) + + candidates = {employee.name: blockers for employee, blockers in editor.candidates(monday_day)} + + assert candidates == {"Kris": [], "Peter": ["missing skill CT"]} + + +def test_replace_checks_the_replacement_as_if_the_current_employee_had_left(): + editor, _, kris, peter, _, monday_night, _ = make_schedule() + editor.assign(monday_night, peter) + + # The shift is full, but Kris may take Peter's place. + edit = editor.replace(monday_night, peter, kris) + + assert monday_night.assigned_employees == [kris] + assert peter.assigned_shifts == [] + assert edit.description == "Erstattede Peter med Kris på 2026-05-11 Nat (MR)" + + +def test_a_refused_replacement_leaves_the_schedule_unchanged(): + editor, anna, _, peter, _, monday_night, _ = make_schedule() + editor.assign(monday_night, peter) + before = snapshot(editor) + + with pytest.raises(ScheduleEditError) as error: + editor.replace(monday_night, peter, anna) + + assert error.value.reasons == ["missing skill MR"] + assert snapshot(editor) == before + assert editor.edit_count == 1 + + +def test_undo_reverts_edits_one_at_a_time_and_restores_list_order(): + editor, anna, kris, peter, monday_day, monday_night, tuesday_day = make_schedule() + editor.assign(monday_day, anna) + editor.assign(monday_day, kris) + editor.assign(monday_night, peter) + after_assignments = snapshot(editor) + + editor.unassign(monday_day, anna) + editor.assign(tuesday_day, anna) + + assert editor.history == [ + "Tilføjede Anna til 2026-05-12 Dag (CT)", + "Fjernede Anna fra 2026-05-11 Dag (CT)", + "Tilføjede Peter til 2026-05-11 Nat (MR)", + "Tilføjede Kris til 2026-05-11 Dag (CT)", + "Tilføjede Anna til 2026-05-11 Dag (CT)", + ] + + editor.undo() + editor.undo() + + # Anna is back in front of Kris, exactly as before the removal. + assert snapshot(editor) == after_assignments + assert monday_day.assigned_employees == [anna, kris] + + while editor.can_undo: + editor.undo() + + assert all(not shift.assigned_employees for shift in editor.shifts) + assert all(not employee.assigned_shifts for employee in editor.employees) + assert editor.undo() is None + + +def test_undoing_a_replacement_brings_back_the_original_employee(): + editor, _, kris, peter, _, monday_night, _ = make_schedule() + editor.assign(monday_night, peter) + before = snapshot(editor) + + editor.replace(monday_night, peter, kris) + undone = editor.undo() + + assert undone.description.startswith("Erstattede Peter med Kris") + assert snapshot(editor) == before + + +def test_unassigning_someone_not_on_the_shift_is_refused(): + editor, anna, _, _, monday_day, _, _ = make_schedule() + + with pytest.raises(ScheduleEditError): + editor.unassign(monday_day, anna) + + assert not editor.can_undo + + +def test_clear_history_forgets_edits_without_changing_the_schedule(): + editor, anna, _, _, monday_day, _, _ = make_schedule() + editor.assign(monday_day, anna) + + editor.clear_history() + + assert not editor.can_undo + assert monday_day.assigned_employees == [anna] + + +def test_build_calendar_groups_shifts_by_date_and_type(): + _, anna, _, _, monday_day, monday_night, tuesday_day = make_schedule() + second_monday_day = Shift(date="2026-05-11", shift_type="Day", required_skill="MR", priority=1) + + dates, shift_types, cells = build_calendar([tuesday_day, monday_night, monday_day, second_monday_day]) + + assert dates == ["2026-05-11", "2026-05-12"] + assert shift_types == [ShiftType.DAY, ShiftType.EVENING, ShiftType.NIGHT] + assert cells[("2026-05-11", ShiftType.DAY)].shifts == [second_monday_day, monday_day] + assert cells[("2026-05-11", ShiftType.DAY)].missing_staff == 3 + assert ("2026-05-12", ShiftType.EVENING) not in cells + + +@pytest.mark.parametrize( + ("blocker", "text"), + [ + ("missing skill CT", "mangler kompetencen CT"), + ("rest time violation", "får for kort hviletid (nat eller aften før en vagt)"), + ("shift is fully staffed", "vagten er fuldt bemandet"), + ("something new", "something new"), + ], +) +def test_blockers_are_described_in_danish(blocker, text): + assert describe_blocker(blocker) == text From 55d1e91b5f00860f06a539acb132080ea9df8d61 Mon Sep 17 00:00:00 2001 From: kris7011 Date: Sun, 1 Nov 2026 10:27:09 +0100 Subject: [PATCH 2/4] feat(export): PDF export of the current schedule Export the schedule with ReportLab: period, print time, number of manual changes, all shifts (missing staff highlighted) and employee workload. An existing file is only replaced when the caller allows it, and the PDF is written to a temporary file and moved into place, so a failed export never damages an existing file. Co-Authored-By: Claude Opus 5.5 --- app/pdf_export.py | 164 +++++++++++++++++++++++++++++++++++++++ requirements.txt | 3 +- tests/test_pdf_export.py | 93 ++++++++++++++++++++++ 3 files changed, 259 insertions(+), 1 deletion(-) create mode 100644 app/pdf_export.py create mode 100644 tests/test_pdf_export.py diff --git a/app/pdf_export.py b/app/pdf_export.py new file mode 100644 index 0000000..9008d2e --- /dev/null +++ b/app/pdf_export.py @@ -0,0 +1,164 @@ +"""PDF export of the current schedule. + +The file is written to a temporary file next to the target and then moved into place, so a failed +export never leaves a half-written PDF or damages an existing file. An existing file is only +replaced when the caller says so (the GUI asks first through the save dialog). +""" + +import os +import tempfile +from datetime import date, datetime +from pathlib import Path +from xml.sax.saxutils import escape + +from reportlab.lib import colors +from reportlab.lib.pagesizes import A4, landscape +from reportlab.lib.styles import getSampleStyleSheet +from reportlab.lib.units import mm +from reportlab.platypus import Paragraph, SimpleDocTemplate, Spacer, Table, TableStyle + +from app.models import Employee, Shift +from app.schedule_editor import SHIFT_TYPE_ORDER + +_MISSING_COLOUR = colors.HexColor("#fde2e2") +_HEADER_COLOUR = colors.HexColor("#1f3a5f") + + +def export_schedule_pdf( + target: str | Path, + shifts: list[Shift], + employees: list[Employee], + generated_at: datetime, + manual_edit_count: int = 0, + overwrite: bool = False, + compress: bool = True, +) -> Path: + target = Path(target) + + if target.suffix.lower() != ".pdf": + raise ValueError("The file name must end with .pdf.") + + if target.exists() and not overwrite: + raise FileExistsError(f"{target} already exists.") + + file_descriptor, temporary_name = tempfile.mkstemp(suffix=".pdf.tmp", dir=target.parent) + os.close(file_descriptor) + + try: + _build(Path(temporary_name), shifts, employees, generated_at, manual_edit_count, compress) + os.replace(temporary_name, target) + except BaseException: + Path(temporary_name).unlink(missing_ok=True) + raise + + return target + + +def _sort_key(shift: Shift): + return (date.fromisoformat(shift.date), SHIFT_TYPE_ORDER.index(shift.shift_type), shift.required_skill) + + +def _build( + path: Path, + shifts: list[Shift], + employees: list[Employee], + generated_at: datetime, + manual_edit_count: int, + compress: bool, +) -> None: + styles = getSampleStyleSheet() + ordered = sorted(shifts, key=_sort_key) + missing = [shift for shift in ordered if not shift.is_fully_staffed] + + first_day = ordered[0].date if ordered else "-" + last_day = ordered[-1].date if ordered else "-" + + story = [ + Paragraph("Vagtplan", styles["Title"]), + Paragraph(f"Periode: {first_day} til {last_day}", styles["Normal"]), + Paragraph(f"Udskrevet: {generated_at:%Y-%m-%d %H:%M}", styles["Normal"]), + Paragraph( + f"{len(ordered)} vagter, {len(ordered) - len(missing)} fuldt bemandede, " + f"{len(missing)} mangler personale. Manuelle ændringer: {manual_edit_count}.", + styles["Normal"], + ), + Spacer(1, 6 * mm), + Paragraph("Vagter", styles["Heading2"]), + _schedule_table(ordered, styles["BodyText"]), + Spacer(1, 6 * mm), + Paragraph("Medarbejdere", styles["Heading2"]), + _employee_table(employees), + ] + + document = SimpleDocTemplate( + str(path), + pagesize=landscape(A4), + leftMargin=15 * mm, + rightMargin=15 * mm, + topMargin=15 * mm, + bottomMargin=15 * mm, + title="Vagtplan", + author="Python Shift Planner Desktop", + pageCompression=1 if compress else 0, + ) + document.build(story) + + +def _schedule_table(shifts: list[Shift], cell_style) -> Table: + rows = [["Dato", "Vagt", "Kompetence", "Tildelt", "Bemanding", "Prioritet"]] + missing_rows = [] + + for index, shift in enumerate(shifts, start=1): + names = ", ".join(employee.name for employee in shift.assigned_employees) or "Ingen" + staffing = f"{len(shift.assigned_employees)}/{shift.required_staff}" + + if not shift.is_fully_staffed: + staffing += f" (mangler {shift.missing_staff_count})" + missing_rows.append(index) + + # A paragraph wraps long name lists inside the column. + rows.append( + [shift.date, shift.shift_type.display_name, shift.required_skill, Paragraph(escape(names), cell_style), staffing, str(shift.priority)] + ) + + table = Table(rows, repeatRows=1, colWidths=[28 * mm, 22 * mm, 28 * mm, 110 * mm, 40 * mm, 20 * mm]) + style = [ + ("BACKGROUND", (0, 0), (-1, 0), _HEADER_COLOUR), + ("TEXTCOLOR", (0, 0), (-1, 0), colors.white), + ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"), + ("GRID", (0, 0), (-1, -1), 0.4, colors.grey), + ("VALIGN", (0, 0), (-1, -1), "TOP"), + ] + style.extend(("BACKGROUND", (0, row), (-1, row), _MISSING_COLOUR) for row in missing_rows) + table.setStyle(TableStyle(style)) + + return table + + +def _employee_table(employees: list[Employee]) -> Table: + rows = [["Medarbejder", "Vagter", "Maks.", "Belastningsscore", "Kompetencer"]] + + for employee in sorted(employees, key=lambda item: item.name.casefold()): + rows.append( + [ + employee.name, + str(employee.assigned_shift_count), + str(employee.max_shifts), + str(employee.total_workload_score), + ", ".join(employee.skills), + ] + ) + + table = Table(rows, repeatRows=1, colWidths=[50 * mm, 22 * mm, 22 * mm, 38 * mm, 80 * mm]) + table.setStyle( + TableStyle( + [ + ("BACKGROUND", (0, 0), (-1, 0), _HEADER_COLOUR), + ("TEXTCOLOR", (0, 0), (-1, 0), colors.white), + ("FONTNAME", (0, 0), (-1, 0), "Helvetica-Bold"), + ("GRID", (0, 0), (-1, -1), 0.4, colors.grey), + ] + ) + ) + + return table diff --git a/requirements.txt b/requirements.txt index 92438f9..559121b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -pytest>=9.0.0 \ No newline at end of file +pytest>=9.0.0 +reportlab>=5.1,<6 diff --git a/tests/test_pdf_export.py b/tests/test_pdf_export.py new file mode 100644 index 0000000..a64a4aa --- /dev/null +++ b/tests/test_pdf_export.py @@ -0,0 +1,93 @@ +import hashlib +from datetime import datetime +from pathlib import Path + +import pytest + +import app.pdf_export as pdf_export +from app.config import EMPLOYEE_PROFILES_CSV_PATH, EMPLOYEES_CSV_PATH, SHIFTS_CSV_PATH +from app.csv_loader import load_employee_profiles_from_csv, load_employees_from_csv, load_shifts_from_csv +from app.pdf_export import export_schedule_pdf +from app.schedule_editor import ScheduleEditor +from app.scheduler import assign_shifts + +GENERATED_AT = datetime(2026, 11, 1, 10, 30) + + +def load_sample_schedule(): + employees = load_employees_from_csv(EMPLOYEES_CSV_PATH) + shifts = assign_shifts( + employees, + load_shifts_from_csv(SHIFTS_CSV_PATH), + employee_profiles=load_employee_profiles_from_csv(EMPLOYEE_PROFILES_CSV_PATH), + ) + return employees, shifts + + +def test_export_writes_a_pdf_with_the_schedule(tmp_path): + employees, shifts = load_sample_schedule() + target = tmp_path / "vagtplan.pdf" + + result = export_schedule_pdf(target, shifts, employees, GENERATED_AT, manual_edit_count=2, compress=False) + + content = target.read_bytes() + assert result == target + assert content.startswith(b"%PDF-") + assert b"Vagtplan" in content + assert b"Periode: 2026-05-05 til 2026-05-11" in content + assert b"Manuelle \\346ndringer: 2." in content # "æ" in the PDF's WinAnsi text encoding + for employee in employees: + assert employee.name.encode() in content + + +def test_export_refuses_to_overwrite_unless_asked(tmp_path): + employees, shifts = load_sample_schedule() + target = tmp_path / "vagtplan.pdf" + target.write_bytes(b"existing report") + + with pytest.raises(FileExistsError): + export_schedule_pdf(target, shifts, employees, GENERATED_AT) + + assert target.read_bytes() == b"existing report" + + export_schedule_pdf(target, shifts, employees, GENERATED_AT, overwrite=True) + + assert target.read_bytes().startswith(b"%PDF-") + + +def test_a_failed_export_keeps_the_existing_file_and_leaves_no_temporary_file(tmp_path, monkeypatch): + employees, shifts = load_sample_schedule() + target = tmp_path / "vagtplan.pdf" + target.write_bytes(b"existing report") + + def failing_build(path, *args): + Path(path).write_bytes(b"half written") + raise RuntimeError("disk full") + + monkeypatch.setattr(pdf_export, "_build", failing_build) + + with pytest.raises(RuntimeError): + export_schedule_pdf(target, shifts, employees, GENERATED_AT, overwrite=True) + + assert target.read_bytes() == b"existing report" + assert [path.name for path in tmp_path.iterdir()] == ["vagtplan.pdf"] + + +def test_export_requires_a_pdf_file_name(tmp_path): + employees, shifts = load_sample_schedule() + + with pytest.raises(ValueError): + export_schedule_pdf(tmp_path / "data" / "shifts.csv", shifts, employees, GENERATED_AT) + + +def test_editing_and_exporting_never_change_the_input_files(tmp_path): + inputs = [Path(EMPLOYEES_CSV_PATH), Path(SHIFTS_CSV_PATH), Path(EMPLOYEE_PROFILES_CSV_PATH)] + before = {path: hashlib.sha256(path.read_bytes()).hexdigest() for path in inputs} + + employees, shifts = load_sample_schedule() + editor = ScheduleEditor(employees, shifts) + shift = next(shift for shift in shifts if shift.assigned_employees) + editor.unassign(shift, shift.assigned_employees[0]) + export_schedule_pdf(tmp_path / "vagtplan.pdf", shifts, employees, GENERATED_AT, editor.edit_count) + + assert {path: hashlib.sha256(path.read_bytes()).hexdigest() for path in inputs} == before From 9bee530bbd5ca37a5ac696fedd3d675f9ecc2735 Mon Sep 17 00:00:00 2001 From: kris7011 Date: Sun, 1 Nov 2026 10:27:09 +0100 Subject: [PATCH 3/4] feat(gui): editable calendar tab, undo button and PDF export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a "Kalender" tab (dates x day/evening/night) where a shift can be selected and employees added, removed or replaced through the ScheduleEditor. Candidates show why they cannot take a shift, refused changes show every reason, and all tabs refresh after a change. Undo is available as a button and Ctrl+Z with a change history. "Eksportér PDF" uses the save dialog's overwrite confirmation. Regenerating the plan asks first when there are manual changes; the CSV files are never written. The default window is slightly larger so a week fits. Co-Authored-By: Claude Opus 5.5 --- app/calendar_view.py | 280 +++++++++++++++++++++++++++++++++++++++++++ app/gui.py | 105 ++++++++++++++-- 2 files changed, 377 insertions(+), 8 deletions(-) create mode 100644 app/calendar_view.py diff --git a/app/calendar_view.py b/app/calendar_view.py new file mode 100644 index 0000000..3b3aab0 --- /dev/null +++ b/app/calendar_view.py @@ -0,0 +1,280 @@ +"""The editable calendar tab: a date × shift type grid and a panel for changing one shift.""" + +import tkinter as tk +from collections.abc import Callable +from datetime import date +from tkinter import ttk + +from app.models import Shift +from app.schedule_editor import ScheduleEditError, ScheduleEditor, build_calendar, describe_blocker, describe_shift + +WEEKDAYS = ["Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn"] + +STAFFED_COLOUR = "#d1fae5" +MISSING_COLOUR = "#fee2e2" +SELECTED_COLOUR = "#bfdbfe" +OK_TEXT_COLOUR = "#065f46" +ERROR_TEXT_COLOUR = "#991b1b" + + +class CalendarView(ttk.Frame): + def __init__(self, parent, on_change: Callable[[], None]): + super().__init__(parent) + self.on_change = on_change + self.editor: ScheduleEditor | None = None + self.selected_shift: Shift | None = None + self.shift_buttons: dict[int, tk.Button] = {} + self.candidate_employees = [] + + # The panel is packed first so it keeps its width; the calendar gets the rest and scrolls. + self._create_edit_panel() + self._create_scrollable_grid_area() + tk.Label(self.grid_area, text="Kør vagtplanen for at se kalenderen.").pack(pady=20) + + def _create_scrollable_grid_area(self) -> None: + container = tk.Frame(self) + container.pack(side=tk.LEFT, fill="both", expand=True, padx=(10, 4), pady=6) + + history = tk.LabelFrame(container, text="Ændringer (nyeste først) – fortryd med Ctrl+Z", padx=6, pady=4) + history.pack(side=tk.BOTTOM, fill="x", pady=(6, 0)) + self.history_list = tk.Listbox(history, height=3) + self.history_list.pack(fill="x") + + canvas = tk.Canvas(container, highlightthickness=0) + horizontal = ttk.Scrollbar(container, orient="horizontal", command=canvas.xview) + vertical = ttk.Scrollbar(container, orient="vertical", command=canvas.yview) + canvas.configure(xscrollcommand=horizontal.set, yscrollcommand=vertical.set) + + horizontal.pack(side=tk.BOTTOM, fill="x") + vertical.pack(side=tk.RIGHT, fill="y") + canvas.pack(side=tk.LEFT, fill="both", expand=True) + + self.grid_area = tk.Frame(canvas) + canvas.create_window((0, 0), window=self.grid_area, anchor="nw") + self.grid_area.bind( + "", + lambda event: canvas.configure(scrollregion=canvas.bbox("all")), + ) + + def _create_edit_panel(self) -> None: + panel = tk.LabelFrame(self, text="Redigér vagt", padx=8, pady=6) + panel.pack(side=tk.RIGHT, fill="y", padx=(4, 10), pady=6) + + self.shift_label = tk.Label(panel, text="Vælg en vagt i kalenderen.", font=("Arial", 10, "bold"), + wraplength=250, justify="left") + self.shift_label.pack(anchor="w") + + # Directly under the heading so the result of a change is always visible. + self.message = tk.Label(panel, text="", wraplength=250, justify="left") + self.message.pack(anchor="w", pady=(6, 0)) + + tk.Label(panel, text="På vagten:").pack(anchor="w", pady=(8, 0)) + self.assigned_list = tk.Listbox(panel, height=2, exportselection=False) + self.assigned_list.pack(fill="x") + + self.remove_button = tk.Button(panel, text="Fjern valgte", command=self.remove_selected, state=tk.DISABLED) + self.remove_button.pack(anchor="w", pady=4) + + tk.Label(panel, text="Medarbejder:").pack(anchor="w", pady=(10, 0)) + self.candidate_box = ttk.Combobox(panel, state="readonly", width=34) + self.candidate_box.pack(fill="x") + + buttons = tk.Frame(panel) + buttons.pack(anchor="w", pady=4) + self.add_button = tk.Button(buttons, text="Tilføj", command=self.add_selected, state=tk.DISABLED) + self.add_button.pack(side=tk.LEFT) + self.replace_button = tk.Button(buttons, text="Erstat valgte", command=self.replace_selected, + state=tk.DISABLED) + self.replace_button.pack(side=tk.LEFT, padx=6) + + + def load(self, editor: ScheduleEditor) -> None: + self.editor = editor + self.selected_shift = None + self.show_message("") + self.refresh() + + def clear(self) -> None: + self.editor = None + self.selected_shift = None + self.show_message("") + self.refresh() + + def refresh(self) -> None: + self._draw_grid() + self._update_panel() + + def _draw_grid(self) -> None: + for child in self.grid_area.winfo_children(): + child.destroy() + + self.shift_buttons = {} + + if self.editor is None or not self.editor.shifts: + tk.Label(self.grid_area, text="Kør vagtplanen for at se kalenderen.").pack(pady=20) + return + + dates, shift_types, cells = build_calendar(self.editor.shifts) + table = tk.Frame(self.grid_area) + table.pack(anchor="nw") + + for column, day in enumerate(dates, start=1): + weekday = WEEKDAYS[date.fromisoformat(day).weekday()] + tk.Label(table, text=f"{weekday}\n{day}", font=("Arial", 9, "bold")).grid(row=0, column=column, padx=2) + + for row, shift_type in enumerate(shift_types, start=1): + tk.Label(table, text=shift_type.display_name, font=("Arial", 9, "bold")).grid(row=row, column=0, sticky="e", + padx=4) + + for column, day in enumerate(dates, start=1): + cell_frame = tk.Frame(table, bd=1, relief="solid", width=130, height=70) + cell_frame.grid(row=row, column=column, padx=2, pady=2, sticky="nsew") + cell = cells.get((day, shift_type)) + + if cell is None: + tk.Label(cell_frame, text="–", fg="#9ca3af", width=12).pack(pady=8) + continue + + for shift in cell.shifts: + self._add_shift_button(cell_frame, shift) + + def _add_shift_button(self, parent: tk.Frame, shift: Shift) -> None: + names = ", ".join(employee.name for employee in shift.assigned_employees) or "Ingen" + staffing = f"{len(shift.assigned_employees)}/{shift.required_staff}" + + button = tk.Button( + parent, + text=f"{shift.required_skill} {staffing}\n{names}", + width=12, + wraplength=100, + justify="center", + relief="flat", + bg=self._colour(shift), + command=lambda: self.select_shift(shift), + ) + button.pack(fill="x", padx=2, pady=2) + self.shift_buttons[id(shift)] = button + + def _colour(self, shift: Shift) -> str: + if shift is self.selected_shift: + return SELECTED_COLOUR + + return STAFFED_COLOUR if shift.is_fully_staffed else MISSING_COLOUR + + def select_shift(self, shift: Shift) -> None: + self.selected_shift = shift + self.show_message("") + + for button_shift in self.editor.shifts: + button = self.shift_buttons.get(id(button_shift)) + if button is not None: + button.configure(bg=self._colour(button_shift)) + + self._update_panel() + + def _update_panel(self) -> None: + self.assigned_list.delete(0, tk.END) + self.history_list.delete(0, tk.END) + self.candidate_box.set("") + + if self.editor is not None: + for description in self.editor.history: + self.history_list.insert(tk.END, description) + + shift = self.selected_shift + + if self.editor is None or shift is None: + self.shift_label.configure(text="Vælg en vagt i kalenderen.") + self.candidate_box.configure(values=[]) + for button in (self.remove_button, self.add_button, self.replace_button): + button.configure(state=tk.DISABLED) + return + + self.shift_label.configure( + text=f"{describe_shift(shift)}\nBemanding {len(shift.assigned_employees)}/{shift.required_staff}, " + f"prioritet {shift.priority}" + ) + + for employee in shift.assigned_employees: + self.assigned_list.insert(tk.END, employee.name) + + candidates = self.editor.candidates(shift) + self.candidate_employees = [employee for employee, _ in candidates] + self.candidate_box.configure( + values=[ + employee.name if not blockers + else f"{employee.name} – {', '.join(describe_blocker(blocker) for blocker in blockers)}" + for employee, blockers in candidates + ] + ) + + has_people = bool(shift.assigned_employees) + self.remove_button.configure(state=tk.NORMAL if has_people else tk.DISABLED) + self.replace_button.configure(state=tk.NORMAL if has_people and candidates else tk.DISABLED) + self.add_button.configure(state=tk.NORMAL if candidates else tk.DISABLED) + + def _chosen_candidate(self): + index = self.candidate_box.current() + + if index < 0: + self.show_message("Vælg en medarbejder først.", error=True) + return None + + return self.candidate_employees[index] + + def _chosen_assigned(self): + selection = self.assigned_list.curselection() + + if not selection: + self.show_message("Vælg en medarbejder på vagten først.", error=True) + return None + + return self.selected_shift.assigned_employees[selection[0]] + + def add_selected(self) -> None: + employee = self._chosen_candidate() + + if employee is not None: + self._apply(lambda: self.editor.assign(self.selected_shift, employee), employee.name) + + def remove_selected(self) -> None: + employee = self._chosen_assigned() + + if employee is not None: + self._apply(lambda: self.editor.unassign(self.selected_shift, employee), employee.name) + + def replace_selected(self) -> None: + current = self._chosen_assigned() + replacement = self._chosen_candidate() if current is not None else None + + if current is not None and replacement is not None: + self._apply(lambda: self.editor.replace(self.selected_shift, current, replacement), replacement.name) + + def undo(self) -> None: + if self.editor is None: + return + + edit = self.editor.undo() + + if edit is None: + self.show_message("Der er intet at fortryde.", error=True) + return + + self.refresh() + self.show_message(f"Fortrudt: {edit.description}") + self.on_change() + + def _apply(self, change: Callable, employee_name: str) -> None: + try: + edit = change() + except ScheduleEditError as error: + reasons = ", ".join(describe_blocker(reason) for reason in error.reasons) + self.show_message(f"Ikke tilladt for {employee_name}: {reasons}.", error=True) + return + + self.refresh() + self.show_message(edit.description) + self.on_change() + + def show_message(self, text: str, error: bool = False) -> None: + self.message.configure(text=text, fg=ERROR_TEXT_COLOUR if error else OK_TEXT_COLOUR) diff --git a/app/gui.py b/app/gui.py index 8c830a6..de5d609 100644 --- a/app/gui.py +++ b/app/gui.py @@ -1,6 +1,9 @@ import tkinter as tk +from datetime import datetime from tkinter import filedialog, messagebox, scrolledtext, ttk +from app.calendar_view import CalendarView + from app.config import ( WORKLOAD_RATIO_LIMIT, AVERAGE_SCORE_LIMIT, @@ -14,6 +17,8 @@ load_shifts_from_csv, load_employee_profiles_from_csv, ) +from app.pdf_export import export_schedule_pdf +from app.schedule_editor import ScheduleEditor from app.scheduler import assign_shifts from app.personalized_workload import calculate_personalized_workload_score @@ -148,7 +153,7 @@ class ShiftPlannerApp: def __init__(self, root: tk.Tk): self.root = root self.root.title("Vagtplanlægning") - self.root.geometry("1150x800") + self.root.geometry("1250x820") self.employees_path = tk.StringVar(value=EMPLOYEES_CSV_PATH) self.shifts_path = tk.StringVar(value=SHIFTS_CSV_PATH) @@ -156,6 +161,8 @@ def __init__(self, root: tk.Tk): self.current_shifts = [] self.current_profiles = [] + self.current_employees = [] + self.editor: ScheduleEditor | None = None title = tk.Label( root, @@ -200,9 +207,30 @@ def __init__(self, root: tk.Tk): ) export_button.pack(side=tk.LEFT, padx=5) + pdf_button = tk.Button( + button_frame, + text="Eksportér PDF", + command=self.export_pdf, + width=20, + ) + pdf_button.pack(side=tk.LEFT, padx=5) + + self.undo_button = tk.Button( + button_frame, + text="Fortryd (Ctrl+Z)", + command=self.undo_last_edit, + width=20, + state=tk.DISABLED, + ) + self.undo_button.pack(side=tk.LEFT, padx=5) + root.bind_all("", lambda event: self.undo_last_edit()) + self.tabs = ttk.Notebook(root) self.tabs.pack(expand=True, fill="both", padx=10, pady=10) + self.calendar = CalendarView(self.tabs, on_change=self.refresh_after_edit) + self.tabs.add(self.calendar, text="Kalender") + self.assigned_table = self.create_table_tab( "Tildelte vagter", ["Dato", "Vagt", "Kompetence", "Tildelt", "Prioritet", "Score"], @@ -306,6 +334,16 @@ def create_tab(self, title: str): return output def run_scheduler(self) -> None: + if self.editor is not None and self.editor.edit_count > 0: + confirmed = messagebox.askyesno( + "Kør vagtplan igen?", + f"Vagtplanen bygges forfra fra CSV-filerne, og dine {self.editor.edit_count} " + "manuelle ændringer går tabt. Fortsæt?", + ) + + if not confirmed: + return + try: employees, shifts, employee_profiles = load_schedule_data( employees_path=self.employees_path.get(), @@ -315,18 +353,32 @@ def run_scheduler(self) -> None: self.current_shifts = shifts self.current_profiles = employee_profiles + self.current_employees = employees - self.populate_assigned_table(shifts) - self.populate_unassigned_table(shifts) - self.populate_risk_table(employees, employee_profiles) - self.set_output( - self.explanation_output, - build_explanation_output(shifts, employee_profiles), - ) + # Edits only change the schedule in memory; the CSV files are never written. + self.editor = ScheduleEditor(employees, shifts) + self.calendar.load(self.editor) + self.refresh_after_edit() except Exception as error: messagebox.showerror("Error", str(error)) + def refresh_after_edit(self) -> None: + """Shows the current, possibly edited, schedule in every tab.""" + self.populate_assigned_table(self.current_shifts) + self.populate_unassigned_table(self.current_shifts) + self.populate_risk_table(self.current_employees, self.current_profiles) + self.set_output( + self.explanation_output, + build_explanation_output(self.current_shifts, self.current_profiles), + ) + self.undo_button.configure( + state=tk.NORMAL if self.editor is not None and self.editor.can_undo else tk.DISABLED + ) + + def undo_last_edit(self) -> None: + self.calendar.undo() + def set_output(self, output, text: str) -> None: output.delete("1.0", tk.END) output.insert(tk.END, text) @@ -334,6 +386,10 @@ def set_output(self, output, text: str) -> None: def clear_output(self) -> None: self.current_shifts = [] self.current_profiles = [] + self.current_employees = [] + self.editor = None + self.calendar.clear() + self.undo_button.configure(state=tk.DISABLED) self.assigned_table.delete(*self.assigned_table.get_children()) self.unassigned_table.delete(*self.unassigned_table.get_children()) @@ -533,6 +589,39 @@ def export_report(self) -> None: messagebox.showinfo("Export complete", f"Report saved to:\n{selected_file}") + def export_pdf(self) -> None: + if not self.current_shifts: + messagebox.showinfo("Ingen data", "Kør vagtplanen før du eksporterer en PDF.") + return + + dates = sorted(shift.date for shift in self.current_shifts) + selected_file = filedialog.asksaveasfilename( + title="Gem vagtplan som PDF", + defaultextension=".pdf", + initialfile=f"vagtplan-{dates[0]}-{dates[-1]}.pdf", + filetypes=[("PDF-filer", "*.pdf")], + # The dialog asks before an existing file is replaced. + confirmoverwrite=True, + ) + + if not selected_file: + return + + try: + path = export_schedule_pdf( + selected_file, + self.current_shifts, + self.current_employees, + generated_at=datetime.now(), + manual_edit_count=self.editor.edit_count if self.editor else 0, + overwrite=True, + ) + except (OSError, ValueError) as error: + messagebox.showerror("PDF kunne ikke gemmes", str(error)) + return + + messagebox.showinfo("PDF gemt", f"Vagtplanen er gemt som:\n{path}") + def build_current_risk_report_text(self) -> str: lines = ["PERSONALIZED RISK REPORT", "=" * 50] From 9c8f6fb5c354c9fe54c3f6ce97c74bbd01e39b46 Mon Sep 17 00:00:00 2001 From: kris7011 Date: Sun, 1 Nov 2026 10:27:09 +0100 Subject: [PATCH 4/4] docs: document calendar editing, undo and PDF export with screenshots Co-Authored-By: Claude Opus 5.5 --- README.md | 51 +++++++++++- docs/PROJECT_WALKTHROUGH.md | 107 ++++++++++++++++++++++++++ docs/images/calendar-edited.png | Bin 0 -> 45523 bytes docs/images/calendar-rule-refused.png | Bin 0 -> 47520 bytes docs/images/calendar-undo.png | Bin 0 -> 45797 bytes docs/images/pdf-export.png | Bin 0 -> 116024 bytes 6 files changed, 154 insertions(+), 4 deletions(-) create mode 100644 docs/PROJECT_WALKTHROUGH.md create mode 100644 docs/images/calendar-edited.png create mode 100644 docs/images/calendar-rule-refused.png create mode 100644 docs/images/calendar-undo.png create mode 100644 docs/images/pdf-export.png diff --git a/README.md b/README.md index d9c83fa..9bc1ebe 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,10 @@ The system is inspired by real-world healthcare scheduling challenges in 24/7 de - Interactive tables - Shift explanation viewer - Report export to `.txt` +- Editable calendar (dates × day/evening/night) with staffing status per shift +- Manual add, remove and replace of employees, checked by the scheduler's own rules +- Undo of manual changes (button or Ctrl+Z) with a change history +- PDF export of the current, possibly edited, schedule ### Assignment Transparency @@ -57,9 +61,23 @@ The system explains WHY employees were assigned: # Screenshots -## Main GUI +## Editable calendar -_Add screenshot here later_ +A change that breaks a scheduling rule is refused with every reason (here Jonas is at capacity and would get too little rest after an evening shift): + +![Refused change in the calendar](docs/images/calendar-rule-refused.png) + +After replacing Jonas with Peter on Sunday evening, Jonas can take Monday's open UL shift. The history lists both changes: + +![Edited calendar with change history](docs/images/calendar-edited.png) + +Undo (button or Ctrl+Z) reverts the latest change exactly: + +![Calendar after undo](docs/images/calendar-undo.png) + +## PDF export + +![First page of the exported PDF](docs/images/pdf-export.png) --- @@ -67,6 +85,7 @@ _Add screenshot here later_ - Python 3.12 - Tkinter +- ReportLab (PDF export) - Pytest - CSV-based data import @@ -79,6 +98,9 @@ python-shift-planner-desktop/ │ ├── app/ │ ├── gui.py +│ ├── calendar_view.py +│ ├── schedule_editor.py +│ ├── pdf_export.py │ ├── main.py │ ├── scheduler.py │ ├── models.py @@ -138,6 +160,20 @@ Run tests: pytest ``` +## Editing the schedule + +1. Click **Kør vagtplan** to generate the schedule from the CSV files. +2. Open the **Kalender** tab and click a shift. Green shifts are fully staffed, red shifts miss people, blue is selected. +3. Choose an employee and click **Tilføj**, select someone on the shift and click **Fjern valgte**, or select both and click **Erstat valgte**. The list shows every employee; those who cannot take the shift show why. +4. Every change is checked with the same rules as the scheduler: required skill, maximum number of shifts, one shift per day, and rest time (no shift the day after a night, no day shift after an evening). A refused change shows all reasons and changes nothing. +5. **Fortryd (Ctrl+Z)** reverts the latest change. The other tabs (assigned, unassigned, risk, explanations) update after every change. + +Changes live in memory only: **the CSV files are never written**. Clicking **Kør vagtplan** again rebuilds the plan from the CSV files and asks first if there are manual changes. + +## PDF export + +**Eksportér PDF** saves the current schedule: period, print time, number of manual changes, every shift with its staff (shifts missing people are highlighted) and each employee's shifts and workload. The save dialog asks before replacing an existing file. The PDF is written to a temporary file first and then moved into place, so a failed export never damages an existing file. + --- # CSV Data Format @@ -177,6 +213,9 @@ employee_id,name,night_tolerance,weekend_tolerance,late_tolerance,max_weekly_loa - GUI reporting - Report export - Interactive explanations +- Editable calendar with rule-checked manual changes +- Undo of manual changes +- PDF export --- @@ -184,11 +223,10 @@ employee_id,name,night_tolerance,weekend_tolerance,late_tolerance,max_weekly_loa - SQLite database - Drag-and-drop scheduling -- Calendar view +- Saving an edited schedule (today edits are kept in memory and exported as PDF) - Fairness optimization - AI-assisted scheduling - What-if simulations -- PDF export - Employee preference management - Real-world agreement rules @@ -205,6 +243,11 @@ Current coverage includes: - CSV loading - Personalized workload scoring - Scheduler behavior +- Schedule editing: add, remove and replace through the scheduler's rules, refused changes leaving the schedule untouched, and undo restoring the exact earlier state (including order) +- Calendar grouping by date and shift type +- PDF export: content, no overwrite without permission, an existing file kept when an export fails, and input CSV files unchanged after editing and exporting + +The GUI itself (`calendar_view.py`, `gui.py`) is not covered by automated tests; its rules and state live in `schedule_editor.py`, which is. See [docs/PROJECT_WALKTHROUGH.md](docs/PROJECT_WALKTHROUGH.md) for the desktop demonstration. --- diff --git a/docs/PROJECT_WALKTHROUGH.md b/docs/PROJECT_WALKTHROUGH.md new file mode 100644 index 0000000..3e82211 --- /dev/null +++ b/docs/PROJECT_WALKTHROUGH.md @@ -0,0 +1,107 @@ +# Python Shift Planner Desktop — project walkthrough + +A developer-level guide to the system and, in depth, to the editable calendar, undo and PDF export. It describes only what exists in the repository. + +## 1. System overview + +```text +CSV files (data/) ──► csv_loader ──► Employee / Shift / EmployeeProfile (models.py) + │ + ▼ + scheduler.assign_shifts rule-based assignment + │ + ┌───────────────────┼───────────────────────┐ + ▼ ▼ ▼ + gui.ShiftPlannerApp schedule_editor pdf_export + (Tkinter tabs) (manual changes, undo) (ReportLab) + │ + └─ calendar_view.CalendarView (Kalender tab) +``` + +The scheduler's rules live on `Employee`: `can_take_shift` and `get_shift_blockers` check capacity, required skill, one shift per day, and rest time (no shift the day after a night; no day shift the morning after an evening). + +## 2. Editable calendar, undo and PDF export + +### Problem + +A generated schedule is a starting point. Planners need to correct it by hand without breaking the rules the scheduler respects, take back a mistake, and hand the result out as a document. + +### `app/schedule_editor.py` (no Tk, fully tested) + +- `ScheduleEditor(employees, shifts)` changes the same objects the GUI displays. +- `assignment_blockers(shift, employee)` = "already assigned", "shift is fully staffed", plus `employee.get_shift_blockers(shift)`. **The scheduler's rules are reused, not copied**, so a rule change applies to both automatic and manual planning. +- `assign`, `unassign`, `replace` raise `ScheduleEditError(reasons)` and change nothing when a rule would break. `replace` removes the current employee first, checks the replacement against that state, and restores the original if the check fails. +- **Undo (command pattern):** each edit records `_Placement`s: the shift, the employee and their positions in both lists. `undo()` removes what was added and re-inserts what was removed at the original positions, so the state, including list order, is exactly as before. A test compares full snapshots of both sides of every assignment. +- `build_calendar(shifts)` groups shifts into a date × shift type grid. +- `describe_blocker` turns rule codes into Danish text for the GUI. + +### `app/calendar_view.py` (Tk) + +- The edit panel is packed before the grid, so it keeps its width; the grid sits in a scrollable canvas. +- Cells show skill, staffing (`1/2`) and names; green = fully staffed, red = missing staff, blue = selected. +- The employee list shows every candidate, with the reasons for those who cannot take the shift, so the planner sees *why* before trying. +- After each change the view calls back into `ShiftPlannerApp.refresh_after_edit`, which refreshes the other tabs and the undo button. + +### `app/pdf_export.py` + +- ReportLab (BSD licence) builds an A4 landscape document: period, print time, number of manual changes, all shifts (rows missing staff highlighted) and an employee table. +- **File safety:** the name must end in `.pdf`; an existing file is refused unless `overwrite=True`; the PDF is written to a temporary file in the same folder and moved into place with `os.replace`, so a failure leaves any existing file untouched and no temporary file behind. The GUI passes `overwrite=True` only after the native save dialog (`confirmoverwrite=True`) has asked the user. +- Names are escaped before going into ReportLab paragraphs, which interpret markup. + +### Input files are never written + +Edits change objects in memory only. "Kør vagtplan" rebuilds from the CSV files and asks for confirmation when there are manual changes, so work is not lost silently. A test hashes the three CSV files before and after editing and exporting. + +## 3. Testing + +| File | What it proves | +| --- | --- | +| `tests/test_schedule_editor.py` (19) | assignments go through the scheduler's rules (skill, capacity, same day, rest time), full shifts, duplicates, candidates with reasons, replace semantics, refused changes leave the state unchanged, undo order and completeness, calendar grouping, Danish rule text | +| `tests/test_pdf_export.py` (5) | PDF content (period, change count, names), no overwrite without permission, existing file kept and no temp file left when the build fails, `.pdf` required, CSV inputs unchanged | +| existing tests (48) | scheduler, models, CSV loading, personalised workload | + +Total: **72 passed** locally (Python 3.12). CI runs Python 3.12 and 3.13 on Ubuntu. The tests do not import Tkinter, so they need no display. + +Not automated: the Tk widgets. They contain no rules; they call the tested editor. + +## 4. Desktop demonstration (1 November 2026, Windows 11, Python 3.12, Tk 8.6) + +The real application window was opened and driven by a script (`invoke()` on the real buttons, which runs the same code as a click). Only the modal save dialog and message boxes were replaced. Screenshots are of the actual window: + +1. "Kør vagtplan": 12 shifts; Monday 2026-05-11 Day UL is unstaffed (1 row in "Ubesatte vagter"). +2. Adding Jonas to it was refused: "Ikke tilladt for Jonas: har nået sit maksimale antal vagter, får for kort hviletid (nat eller aften før en vagt)." +3. Replacing Jonas with Peter on Sunday evening succeeded; then Jonas could take Monday's shift. "Ubesatte vagter" became empty, and the history showed both changes. +4. "Eksportér PDF" (dialog options included `confirmoverwrite: True`) wrote a 2-page PDF: "12 vagter, 12 fuldt bemandede … Manuelle ændringer: 2." +5. "Fortryd" reverted the last change; Monday was unstaffed again. +6. The SHA-256 of all three CSV files was unchanged. + +The demo also found two layout problems in the first version, both fixed: the edit panel could be pushed out of the window at the default width, and the change history was cut off. + +## 5. Limitations + +- An edited schedule cannot be saved for later (only exported as PDF). +- Undo has no redo. +- The calendar is a grid, not drag-and-drop. +- The GUI is not DPI-aware on Windows; at high display scaling it is scaled by Windows. + +## 6. Ownership and AI assistance + +Implemented with AI assistance (Claude Code). The owner defined the requirements (editable calendar, undo, PDF export, reuse of validation, no overwriting of user files) and reviews and merges. + +## 7. Interview preparation + +**Non-technical:** After the plan is generated you can click any shift, swap or add people, and the program stops changes that break the rest and skill rules, telling you why. You can undo, and print the plan as a PDF. + +**Developer:** `ScheduleEditor` reuses `Employee.get_shift_blockers`, records each change as a command with list positions, and undo replays it backwards. The Tk view only calls the editor and redraws. + +**Senior:** Rules have a single source of truth shared by automatic and manual planning. State changes are reversible and atomic (a refused replace restores itself). File output is atomic and never overwrites without consent. The GUI is a thin layer, so the logic is tested without a display. + +**Questions and answers** + +1. *Why the command pattern instead of saving a copy of the whole schedule for undo?* Each edit touches one or two assignments; recording them is small and exact, and it keeps object identity (the GUI holds references to the same objects). +2. *Why check the replacement after removing the current employee?* Otherwise a full shift or the current person's own shift would block every replacement. +3. *How do you avoid overwriting a user's file?* The function refuses existing files unless told otherwise; the GUI only says so after the OS dialog asked; the write goes through a temporary file and an atomic rename. +4. *Why ReportLab?* Mature, BSD-licensed, pure Python with wheels, and good table layout. It is the only new runtime dependency. +5. *What is not tested and why is that acceptable?* The Tk widgets. They hold no rules; the editor they call is tested, and the window was demonstrated on Windows. + +**Hands-on exercise:** Add redo: keep a second stack, push to it in `undo()`, clear it on every new edit, add `redo()` with tests, and bind Ctrl+Y in the GUI. diff --git a/docs/images/calendar-edited.png b/docs/images/calendar-edited.png new file mode 100644 index 0000000000000000000000000000000000000000..ad65da20da83b2e0b79456733331d9318f50f880 GIT binary patch literal 45523 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

tJCKUvr1|z2NImbBE{*XP z&7C~M#Cr6wuV2NnVe-+kePL|e!zfXyGRk$2T0meo-qn;qy?xnCYf?P_Mv!&*JjG(T zTrGS<7UI?Q1E}wu!o2hl$+i}SD%`6Zvn_g?2v1;cYNRsS8 z=kC-FIGp-ZwV@EJX0Bq(xu)-SP`i7N60mB1B4pYE&m=VDNUj%+r%cFO*d>+$iGGuN zNeyBH3CY{DzXyq#BIu!ErEVpn(flIKo|@f)piTBwl%#p~N_ zJWbfeDV{_7uAnyUdMM*>lQt@#89;k!C!uGx>m#WLwsxuWR3fb1eAH9^NMZmBIw>f; zRD(oa_F{=45#c_2;sZ*UeZYl}O8){k8YLkc%19LVQHpY_R)<}W6M0_q14t4Cj{goI z`8VZl3sB`?gx;V3%5tK$07TM3qOQLZ<44;B1zMejM?`hJ{|EC09rY$~r6bApzQrRg z2fg~s$}N0%KQ!e3%WsW{0*WBqk88rm=q5m7?)c*-76`3^sqxB#9E0ep%W-eZV zRuA3Y)|q7p)86*u4l2Pe=i`Mic6{4Kzk474g1IIDlIn*z*g8}G`vVu8kM%;?@uBko z%XotGmRAL@l;qdEXi1$di2e6}pvnGswnDVE0vjJh1<*ZDLg;#ZtN``bTnWwTGjxv$iMMP!x0(nF&z!ztSX zRz2x9xg)!>#U#BZo0G=Za!~~0`T{q{12DjAyuo;w;ZJqmfX&Kr$x0e1Pjc`dasT1P zSTLL>;lUi+$NGyO0a0KE{P$SqoDF4qz7oF=%E%nPG?OIM>I$87i2C&EqY{#?75laTb zuP&Ys@{t}I^Yh_x_|1%$y@rRhdX_IIo}sZ+FozFXmx;s`>9Rgyor?KN@nm-Mru_QB z;Lov^Z(E-q6CPjAaZC;!pk!+%K0RfD8UQd1?A)`zS9^Q4eEa2)C^uw@&-3b-@M09d zL^=`OuV11AU#@_I{<8!#PBe zGl=qZk9t7=d;Zdi+)H035~f`xd_9iVRx+Qx8{t=g4BU9T`O8+=Z=vR0;SncVtK$!} zCy-^k(c;0)+=~*`=3Ib29c|fyBUD$N62ykB)sIeP%zBUdC;xk0(6RD8UF0%H8d+yEQ1- zk~7qXp2}rgn_o4M5V1!_)p;*4>#RAyv#(F*x)5!UmQEG9;yD7P?QAC1am@^oAoh$l z*Z!J6K6~jcs)-7*TJuhZ&vc;#H~Fr|-b)x!dQ$@l>lvU7<*#wSW#5=C&$Dl

=pvlH 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 literal 0 HcmV?d00001 diff --git a/docs/images/calendar-rule-refused.png b/docs/images/calendar-rule-refused.png new file mode 100644 index 0000000000000000000000000000000000000000..51a8821883e62e821925ed3b4ec60496c7850700 GIT binary patch literal 47520 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 D>$Lw9 literal 0 HcmV?d00001 diff --git a/docs/images/calendar-undo.png b/docs/images/calendar-undo.png new file mode 100644 index 0000000000000000000000000000000000000000..556d6ceeeca5db9b553b563e8a29dd65e5d44833 GIT binary patch literal 45797 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 literal 0 HcmV?d00001 diff --git a/docs/images/pdf-export.png b/docs/images/pdf-export.png new file mode 100644 index 0000000000000000000000000000000000000000..8af3067e8178948a8b7a996bd2643010f1113aea GIT binary patch literal 116024 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

tQ`UDr%TRjQsP< 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 literal 0 HcmV?d00001