0c27d7ac86
- 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.
278 lines
7.4 KiB
Markdown
278 lines
7.4 KiB
Markdown
# 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`:
|
|
|
|
```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
|
|
|
|
```bash
|
|
./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:**
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
# 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
|
|
- **DIN 5008 Standard**: https://www.beuth.de
|
|
- **BFSG Gesetz**: https://www.gesetze-im-internet.de/bfsg/
|
|
- **DSGVO Anforderungen**: https://www.gesetze-im-internet.de/dsgvo/
|
|
- **ReportLab Docs**: https://www.reportlab.com/docs/
|
|
|
|
### Logs prüfen
|
|
```bash
|
|
tail -f logs/app.log | grep -i "pdf\|export"
|
|
```
|
|
|
|
### Debug-Modus
|
|
```python
|
|
# 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
|