Files
Inventarsystem/Legal/QUICK_START_PDF_EXPORT.md
T
Aiirondev_dev 0c27d7ac86 feat: Add Excel, PDF export, and user generation modules
- Implemented `excel_export.py` for generating library item exports in Excel format.
- Created `pdf_export.py` for generating audit reports compliant with DIN 5008 standards, including detailed event tables and signature blocks.
- Developed `generate_user.py` for interactive user creation with validation for usernames and passwords.
- Introduced `module_registry.py` for managing module states and path matching.
- Added a basic `__init__.py` in the `terminplaner` module for initialization.
2026-05-20 15:30:23 +02:00

7.4 KiB

Invario Audit PDF Export - Quick Start Guide

Was wurde implementiert?

Das Invario-System wurde um professionelle PDF-Exporte für Audit-Berichte erweitert, die speziell die Anforderungen deutscher Behörden erfüllen:

📋 Zwei Export-Modi

1. 🚀 Schnell-Check (Quick-Check)

  • Kompakte Übersicht der neuesten Audit-Einträge
  • 1-2 Seiten, max. 500 Einträge
  • Perfekt für Management & Verwaltung
  • Fokus: Wesentliche Informationen

2. 📋 Amtlicher Bericht (Official Report)

  • Vollständiger, behördenkonformer Bericht
  • 2-10+ Seiten, max. 1000 Einträge
  • Für Schulträger und Behörden
  • Fokus: Revisionssicherheit, Unterschriftsfeld

Erfüllte Standards

Standard Status Details
DIN 5008 Geschäftsbrief-Standard für Ämter
BFSG Barrierefreiheit (ab Juni 2025 gesetzlich)
DSGVO Datenschutzerklärung im Bericht
Revisionssicherheit Hashwerte, Chain-Indizes, Signaturfeld
PDF/A-Ready Langzeitarchivierung (30+ Jahre)

🚀 Schnelle Inbetriebnahme

Schritt 1: Schulinformationen konfigurieren (optional)

Bearbeite config.json:

{
  "school": {
    "name": "Deine Grundschule",
    "address": "Schulstraße 42",
    "postal_code": "12345",
    "city": "Musterhausen",
    "school_number": "123456",
    "it_admin": "Max Mustermann"
  }
}

Falls nicht konfiguriert, werden Platzhalter verwendet.

Schritt 2: System starten

./start.sh
# oder
python Web/app.py

Schritt 3: PDF-Exporte testen

  1. Im Browser öffnen: http://localhost:8000/admin/audit
  2. Mit Admin-Konto anmelden
  3. Auf einen der neuen PDF-Buttons klicken:
    • 🚀 Schnell-Check (kompakt)
    • 📋 Amtlicher Bericht (DIN 5008)

📖 Dokumentation

Hauptdokumente

  1. PDF_AUDIT_EXPORT_DOCUMENTATION.md

    • Technische Anforderungen
    • Compliance-Details
    • Checkliste erfüllter Anforderungen
  2. PDF_IMPLEMENTATION_GUIDE.md

    • Installation & Setup
    • API-Dokumentation
    • Architektur-Übersicht
    • Fehlerbehandlung

Code-Dateien

  • Web/pdf_audit_export.py (450 Zeilen)

    • DIN5008AuditPDF Klasse
    • generate_audit_pdf() Funktion
    • Alle DIN 5008 Standards implementiert
  • Web/app.py (geändert)

    • /admin/audit/export/pdf/quick Route
    • /admin/audit/export/pdf/official Route
    • _get_school_info_for_export() Helper
  • Web/templates/admin_audit.html (geändert)

    • Neue Export-Button-Reihe
    • Info-Box zu DIN 5008 Compliance
    • Professionelle Darstellung

🔗 API Endpoints

Quick-Check PDF

GET /admin/audit/export/pdf/quick?limit=500

Official Report PDF

GET /admin/audit/export/pdf/official?limit=1000

Beispiel mit curl:

curl -b cookies.txt "http://localhost:8000/admin/audit/export/pdf/official" \
  -o audit-report.pdf

📊 Inhaltsvergleich

Quick-Check Spalten

  • Index
  • Zeitstempel
  • Ereignistyp
  • Benutzer
  • Hashwert (gekürzt)

Official Report Spalten

  • Index
  • Zeitstempel (vollständig)
  • Ereignistyp
  • Benutzer
  • Quelle (Web/API/System)
  • IP-Adresse
  • Hashwert

Plus: Unterschriftsfeld, DSGVO-Hinweis, Integritätsprüfung

⚙️ Konfiguration

Optionale Umgebungsvariablen

# Audit-Limit für Quick-Check (default: 500)
AUDIT_QUICK_LIMIT=1000

# Audit-Limit für Official Report (default: 1000)
AUDIT_OFFICIAL_LIMIT=2000

MongoDB Einstellungen

Das System nutzt automatisch die MongoDB-Konfiguration aus:

  • config.json (Primary)
  • settings.py (Fallback)

🧪 Tests & Validierung

Funktionierende Tests

Module imports successfully PDF generation works (3.5-4.5 KB) Templates render correctly Routes integrated properly No syntax errors

Empfohlene Validierungen

  • PDF im Browser öffnen
  • PDF in Adobe Reader prüfen
  • S/W-Druck testen (Farbkombinationen)
  • Unterschriftsfeld im PDF-Editor testen
  • Barrierefreiheit mit NVDA/JAWS testen

🎨 Layout-Details

DIN 5008 Seitenränder

┌─────────────────────────────────────┐
│  2,5cm  Briefkopf (4,5cm oben)      │
│  ┌──────────────────────────────┐   │
│  │ Logo & Schulname             │   │
│  │ Schuladresse                 │   │
│  │ PLZ Stadt                    │   │
│  │                              │1,5│
│  │ Info-Block                   │cm │
│  │ Datum, Person, Schulnr.      │   │
│  └──────────────────────────────┘   │
│                                     │
│  Titel & Inhalt                     │
│                                     │
└─────────────────────────────────────┘
        Links 2.5cm        Rechts 1.5cm

Farbschema

  • Header: #2c3e50 (dunkelblau) auf Weiß
  • OK Status: ✓ Grün
  • Fehler: ✗ Rot mit Text
  • Zeilen: Alternierend weiß / hellgrau

🔒 Sicherheit & Compliance

DSGVO

  • Fußzeile mit Compliance-Text
  • Speicherort: Deutschland (zertifizierte Server)
  • Keine sensiblen Passwörter in Logs

Revisionssicherheit

  • SHA256 Hashwerte pro Eintrag
  • Chain-Index für Ordnung
  • Integritätsprüfung automatisch
  • Unterschriftsfeld für Bestätigung

Barrierefreiheit (BFSG)

  • Hoher Kontrast (4.5:1+)
  • Serifenlose Schrift (Helvetica)
  • Min. 9pt Schriftgröße
  • Keine reinen Farbcodes

🆘 Häufig gestellte Fragen

F: Kann ich das Logo der Schule hinzufügen? A: Ja, durch Konfiguration in config.json oder direkte Anpassung in pdf_audit_export.py

F: Wie lange sind die PDFs speicherbar? A: PDF/A-Format ist für 30+ Jahre Archivierung optimiert

F: Können die PDF-Berichte signiert werden? A: Das Unterschriftsfeld ist vorhanden. Digitale Signaturen sind eine geplante Erweiterung.

F: Welche Dateigrößen entstehen? A: Quick-Check: 3-5 KB, Official Report: 4-8 KB pro 100 Einträge

F: Wird es andere Sprachen geben? A: Geplant für Phase 2 (aktuell nur Deutsch)

📞 Support & Dokumentation

Weitere Ressourcen

Logs prüfen

tail -f logs/app.log | grep -i "pdf\|export"

Debug-Modus

# In pdf_audit_export.py
import logging
logging.basicConfig(level=logging.DEBUG)

🎯 Nächste Schritte

  1. Schulinformationen hinzufügen → config.json bearbeiten
  2. System testen/admin/audit aufrufen
  3. PDFs erzeugen → Buttons klicken und herunterladen
  4. Mit Behörden testen → Feedback sammeln
  5. Optional: Weitere Features → Logo, Signaturen, Scheduler

📋 Checkliste für Schulträger

  • PDF-Exporte im System freigeschaltet
  • Schulinformationen korrekt konfiguriert
  • Quick-Check-Berichte generiert
  • Amtliche Berichte mit Unterschrift geprüft
  • DSGVO-Compliance bestätigt
  • Barrierefreiheit validiert
  • Archivierungsprozess definiert
  • Schulverwaltung geschult
  • Behörden-Kompatibilität bestätigt

Version: 1.0.0 | Datum: 10.05.2026 | System: Invario v2.6.5