# Copilot Tasks: Attendance PDF Generator ## Phase 1: Projekt-Setup - [x] Task 1.1: .github/copilot-plan.md erstellen - [x] Task 1.2: requirements.txt + requirements-dev.txt erstellen - [x] Task 1.3: config.json erstellen (mit Platzhaltern für antragsnummer, ort) - [x] Task 1.4: schema.json erstellen - [x] Task 1.5: Verzeichnisse anlegen (src/, output/, template/, tests/) ## Phase 2: Datenmodell & Konfiguration - [x] Task 2.1: src/exceptions.py implementieren - [x] Task 2.2: src/models.py implementieren (Person, AttendanceDate, MonthlyAttendance) - [x] Task 2.3: src/config_loader.py implementieren ## Phase 3: Excel Reader - [x] Task 3.1: src/excel_reader.py implementieren - extract_year_from_filename() - get_sheet_names() - extract_persons() - extract_attendance() ## Phase 4: PDF Filler - [x] Task 4.1: src/pdf_filler.py implementieren - build_field_dict() - fill_pdf() ## Phase 5: Validierung & Vorschau - [x] Task 5.1: src/validators.py implementieren (9 Checks) - [x] Task 5.2: Konsolenvorschau + j/N-Prompt ## Phase 6: CLI - [x] Task 6.1: generate.py mit Click implementieren - generate --file --month [--out] - validate --file --month ## Phase 7: Tests - [x] Task 7.1: tests/test_excel_reader.py - [x] Task 7.2: tests/test_pdf_filler.py - [x] Task 7.3: tests/test_validators.py - [x] Task 7.4: pytest ausführen, Fehler beheben (70/70 grün) ## Nachträgliche Korrekturen (nach Analyse der echten Dateien) - [x] PDF-Feldnamen korrigiert: ort → unterschrift.ort, erstellungsdatum → unterschrift.datum - [x] Pauschale-Felder korrigiert: pauschale.N → pauschale_5.N (Dropdown-Wert "1") - [x] Statuscodes A und V ergänzt (aus realem Excel und PDF-Template) - [x] CLI-Parameter --sheet umbenannt zu --month - [x] README.md erstellt