Files
sufw-taetigkeitsnachweise/.copilot/TASKS.md
T

2.8 KiB
Raw Blame History

Aufgaben: Tätigkeitsnachweis-Generator (Streamlit App) – PDF-Migration

Migration: Das XLSX-Template war schreibgeschützt und wurde durch ein PDF-Template ersetzt. Alle _Field-Platzhalter im PDF werden durch echte Daten ersetzt.

🔄 Migration: XLSX → PDF Template ✅

  • M1: requirements.txt → PyMuPDF hinzufügen
  • M2: config/settings.ini → filename_pattern auf .pdf-Endung ändern
  • M3: config/output-fields.json → target_cell entfernen, pdf_field hinzufügen (Mapping source_field → PDF-Platzhalter-Name)
  • M4: src/config.py → get_available_templates() auf .pdf-Dateien umstellen
  • M5: src/validator.py → validate_template() für PDF angepasst (prüft _Field-Platzhalter via PyMuPDF)
  • M6: src/writer.py → Komplett neu: PDF-basierte Generierung mit PyMuPDF
    • Pre-Scan: Alle _Field-Platzhalter im Template-PDF finden (Position, Schriftgröße)
    • Für jeden Mitarbeiter: neues PDF, pro Monat eine Seite (Template-Kopie), _Field-Texte redacten + ersetzen
    • Dateiname: {nachname}_{vorname}_Tätigkeitsnachweis.pdf
  • M7: app.py → Template-Validierung für PDF angepasst (Dropdown zeigt .pdf, Validierung prüft _Field-Marker)
  • M8: coldrun.py → An PDF-Template angepasst
  • M9: tests/test_e2e.py → Tests für PDF-Output umgeschrieben (PyMuPDF statt openpyxl zur Output-Validierung)
  • M10: .copilot/PLAN.md und .copilot/TASKS.md aktualisiert

🔍 Analyse (abgeschlossen)

  • A1: Input-Datei input/2025 JM.xlsx analysiert
  • A2: PDF-Template template/Tätigkeitsnachweise Stellenförderung.pdf liegt vor (mit _Field-Platzhaltern)

⚙️ Konfiguration (migriert)

  • K1: config/input-fields.json — unverändert gültig
  • K2: config/output-fields.json — target_cell entfernt, pdf_field hinzugefügt
  • K3: config/settings.ini — filename_pattern auf .pdf

🧱 Core-Module

  • C1: requirements.txt — streamlit, openpyxl, PyMuPDF
  • C2: src/__init__.py + src/models.py — OutputMapping um pdf_field erweitert
  • C3: src/config.py — Template-Suche auf .pdf umgestellt
  • C4: src/parser.py — unverändert
  • C5: src/validator.py — validate_template() für PDF via PyMuPDF
  • C6: src/writer.py — Komplett neu mit PyMuPDF (redact + insert_text)

🖥️ UI & Start

  • U1: app.py — PDF-Template-Validierung angepasst
  • U2: start.bat — unverändert
  • U3: coldrun.py — An PDF angepasst, funktioniert
  • U4: README.md — vorhanden

✅ Test

  • T1: E2E-Test mit realer Input-Datei und PDF-Template → 5/5 Tests bestanden
  • T2: Edge Cases — Umlaute korrekt im PDF, fehlende Marker (Ort/Datum) werden übersprungen