3.8 KiB
3.8 KiB
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
- Admin-Bereich öffnen: Navigieren Sie zu
/admin/reports/automaticreport/
- Reports auswählen: Wählen Sie einen oder mehrere automatische Reports aus der Liste aus
- Aktion ausführen: Wählen Sie aus dem Aktions-Dropdown "Ausgewählte Reports sofort senden"
- 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
ausreports.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
-
"Report ist deaktiviert"
- Lösung: Report in der Detail-Ansicht aktivieren (
is_active = True
)
- Lösung: Report in der Detail-Ansicht aktivieren (
-
"Keine E-Mail-Adressen"
- Lösung: E-Mail-Adressen im Report konfigurieren
-
"'Emailadress' object has no attribute 'email'"
- Technischer Fehler: Das Emailadress-Model verwendet
email_address
stattemail
- Lösung: Wurde in Version 1.1 behoben
- Technischer Fehler: Das Emailadress-Model verwendet
-
"SMTP-Fehler"
- Lösung: E-Mail-Konfiguration in
settings.py
überprüfen
- Lösung: E-Mail-Konfiguration in
-
"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