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

3.8 KiB
Raw Blame History

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