FallenBirdyForm/MANUAL_SEND_DOCUMENTATION.md
2025-07-09 19:59:29 +02:00

108 lines
3.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Manuelle "Sofort senden" Funktion für Automatische Reports
## Übersicht
Die neue "Sofort senden" Aktion im Django Admin ermöglicht es Administratoren, automatische Reports manuell und sofort zu versenden, ohne auf den geplanten Zeitpunkt warten zu müssen.
## Verwendung
1. **Admin-Bereich öffnen**: Navigieren Sie zu `/admin/reports/automaticreport/`
2. **Reports auswählen**: Wählen Sie einen oder mehrere automatische Reports aus der Liste aus
3. **Aktion ausführen**: Wählen Sie aus dem Aktions-Dropdown "Ausgewählte Reports sofort senden"
4. **Bestätigen**: Klicken Sie auf "Ausführen"
## Funktionalität
### Automatische Zeitraumberechnung
Die Aktion berechnet automatisch den Zeitraum basierend auf der Frequenz des Reports:
- **Wöchentlich**: Letzte 7 Tage
- **Monatlich**: Letzter Monat (vom 1. des Vormonats bis heute)
- **Vierteljährlich**: Letztes Quartal (3 Monate zurück)
### Validierung und Filterung
Vor dem Versenden wird überprüft:
-**Aktivierung**: Report muss aktiv sein (`is_active = True`)
-**E-Mail-Adressen**: Mindestens eine E-Mail-Adresse muss konfiguriert sein
-**Filter**: Die konfigurierten Filter (Naturschutz-/Jagdbehörde) werden angewendet
### Rückmeldungen
Das System gibt detaillierte Rückmeldungen:
-**Erfolgreich**: Anzahl gesendeter E-Mails, Zeitraum, Patientenzahl
- ⚠️ **Übersprungen**: Grund für das Überspringen (deaktiviert, keine E-Mail-Adressen)
-**Fehler**: Detaillierte Fehlermeldungen bei Problemen
### Protokollierung
- Alle versendeten Reports werden in `ReportLog` protokolliert
- Das `last_sent` Feld des AutomaticReport wird aktualisiert
- CSV-Dateien werden gespeichert und können später heruntergeladen werden
## Technische Details
### Implementierung
- **Datei**: `/app/reports/admin.py`
- **Methode**: `send_report_now()`
- **Service**: Verwendet `ReportGenerator` aus `reports.services`
### Sicherheit
- Nur Administratoren mit entsprechenden Berechtigungen können diese Aktion ausführen
- Deaktivierte Reports werden automatisch übersprungen
- Umfassende Fehlerbehandlung verhindert Systemausfälle
## Beispiel-Ausgaben
### Erfolgreicher Versand
```
✅ Report 'Monatlicher Naturschutzbericht' erfolgreich gesendet (letzter Monat, 15 Patienten, 3 Empfänger).
✅ Zusammenfassung: 1 Report(s) erfolgreich gesendet.
```
### Übersprungener Report
```
⚠️ Report 'Deaktivierter Report' ist deaktiviert und wurde übersprungen.
Alle 1 ausgewählten Reports wurden übersprungen (deaktiviert oder keine E-Mail-Adressen).
```
### Fehler beim Versand
```
❌ Fehler beim Senden von 'Fehlerhafter Report': SMTP-Server nicht erreichbar.
❌ Alle 1 Reports konnten nicht gesendet werden.
```
## Troubleshooting
### Häufige Probleme
1. **"Report ist deaktiviert"**
- Lösung: Report in der Detail-Ansicht aktivieren (`is_active = True`)
2. **"Keine E-Mail-Adressen"**
- Lösung: E-Mail-Adressen im Report konfigurieren
3. **"'Emailadress' object has no attribute 'email'"**
- Technischer Fehler: Das Emailadress-Model verwendet `email_address` statt `email`
- Lösung: Wurde in Version 1.1 behoben
4. **"SMTP-Fehler"**
- Lösung: E-Mail-Konfiguration in `settings.py` überprüfen
5. **"Keine Patienten gefunden"**
- Normal: Report wird trotzdem versendet, zeigt 0 Patienten an
### Log-Überprüfung
- Alle Versandaktivitäten werden in `/admin/reports/reportlog/` protokolliert
- Bei Fehlern die Django-Logs überprüfen
## Entwickler-Hinweise
### Anpassungen
- Zeitraumberechnung kann in der `send_report_now()` Methode angepasst werden
- Zusätzliche Validierungen können hinzugefügt werden
- E-Mail-Templates befinden sich in `/templates/reports/email/`
### Erweiterungen
- Mögliche Erweiterung: Benutzerdefinierte Zeiträume
- Mögliche Erweiterung: Vorschau vor dem Versand
- Mögliche Erweiterung: Stapelverarbeitung mit Fortschrittsanzeige