Phase 2: Destinatär-Timeline, Nachweis-Board, Zahlungs-Pipeline & Pächter-Workflow

2a. Destinatär-Timeline (/destinataere/<pk>/timeline/)
    - Chronologische Ansicht aller Events (Zahlungen, Nachweise, E-Mails, Notizen)
    - Filter nach Typ via GET-Parameter

2b. Nachweis-Board (/nachweis-board/)
    - Quartals-Übersicht aller aktiver Destinatäre (Q1–Q4) in einer Tabellenansicht
    - Batch-Erinnerung: erzeugt Audit-Log-Einträge für säumige Destinatäre
    - Semester-Logik erhalten (15.03 / 15.09 Fristen)

2c. Zahlungs-Pipeline (/zahlungs-pipeline/)
    - 5-Stufen-Kanban: Offen → Nachweis eingereicht → Freigegeben → Überwiesen → Abgeschlossen
    - Vier-Augen-Prinzip: can_be_freigegeben() prüft anderen Nutzer als Ersteller
    - SEPA pain.001 XML-Export (/sepa-export/) für freigegebene Zahlungen
    - Neue Status-Werte: nachweis_eingereicht, freigegeben, abgeschlossen
    - Neue Felder: freigegeben_von, freigegeben_am, erstellt_von

2d. Pächter-Workflow (/paechter/workflow/)
    - Pipeline nach Restlaufzeit: abgelaufen / <6M / 6–24M / >24M / unbefristet
    - Ausstehende Jahresabrechnungen (Vorjahr ohne Abrechnung)
    - Pachtanpassungen fällig (Verträge > 5 Jahre laufend)
    - Top-Pächter nach Gesamtfläche

Sidebar-Navigation um Pipeline, Nachweis-Board und Pacht-Workflow erweitert.
Migration 0047 erzeugt und angewendet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
SysAdmin Agent
2026-03-11 10:40:43 +00:00
parent bf47ba11c9
commit ee2c827d85
11 changed files with 1327 additions and 3 deletions

View File

@@ -440,4 +440,41 @@ urlpatterns = [
path("kalender/<uuid:pk>/bearbeiten/", views.kalender_edit, name="kalender_edit"),
path("kalender/<uuid:pk>/loeschen/", views.kalender_delete, name="kalender_delete"),
path("kalender/api/events/", views.kalender_api_events, name="kalender_api_events"),
# Phase 2: Destinatär-Timeline (2a)
path(
"destinataere/<uuid:pk>/timeline/",
views.destinataer_timeline,
name="destinataer_timeline",
),
# Phase 2: Nachweis-Board (2b)
path("nachweis-board/", views.nachweis_board, name="nachweis_board"),
path(
"nachweis-board/erinnerung/",
views.batch_erinnerung_senden,
name="batch_erinnerung_senden",
),
# Phase 2: Zahlungs-Pipeline (2c)
path("zahlungs-pipeline/", views.zahlungs_pipeline, name="zahlungs_pipeline"),
path(
"unterstuetzungen/<uuid:pk>/freigeben/",
views.unterstuetzung_freigeben,
name="unterstuetzung_freigeben",
),
path(
"unterstuetzungen/<uuid:pk>/nachweis-eingereicht/",
views.unterstuetzung_nachweis_eingereicht,
name="unterstuetzung_nachweis_eingereicht",
),
path(
"unterstuetzungen/<uuid:pk>/abschliessen/",
views.unterstuetzung_abschliessen,
name="unterstuetzung_abschliessen",
),
path("sepa-export/", views.sepa_xml_export, name="sepa_xml_export"),
# Phase 2: Pächter-Workflow (2d)
path("paechter/workflow/", views.paechter_workflow, name="paechter_workflow"),
]