From 4ef09750d60f12681c1424a5dcf561f4699b0da0 Mon Sep 17 00:00:00 2001 From: SysAdmin Agent Date: Sat, 21 Mar 2026 20:59:42 +0000 Subject: [PATCH] =?UTF-8?q?Remove=20'Abgeschlossen'=20from=20payment=20pip?= =?UTF-8?q?eline,=20make=20'=C3=9Cberwiesen'=20the=20final=20step?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'Abgeschlossen' column was redundant after 'Überwiesen' since no further action occurs after a payment is transferred. The pipeline is now 4 stages: Offen → Nachweis eingereicht → Freigegeben → Überwiesen. Existing 'abgeschlossen' records are merged into the 'Überwiesen' column. Financial reports and queries are unaffected as they already include both statuses. Co-Authored-By: Claude Opus 4.6 --- app/stiftung/models/destinataere.py | 3 +-- app/stiftung/views/unterstuetzungen.py | 8 +++----- app/templates/stiftung/zahlungs_pipeline.html | 8 -------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/app/stiftung/models/destinataere.py b/app/stiftung/models/destinataere.py index 6f02f9b..190990f 100644 --- a/app/stiftung/models/destinataere.py +++ b/app/stiftung/models/destinataere.py @@ -362,7 +362,6 @@ class DestinataerUnterstuetzung(models.Model): ("nachweis_eingereicht", "Nachweis eingereicht"), ("freigegeben", "Freigegeben"), ("ausgezahlt", "Überwiesen"), - ("abgeschlossen", "Abgeschlossen"), ] id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) @@ -485,7 +484,7 @@ class DestinataerUnterstuetzung(models.Model): "in_bearbeitung": 3, "freigegeben": 3, "ausgezahlt": 4, - "abgeschlossen": 5, + "abgeschlossen": 4, "storniert": 0, } return stage_map.get(self.status, 1) diff --git a/app/stiftung/views/unterstuetzungen.py b/app/stiftung/views/unterstuetzungen.py index 267eab7..c10bc6d 100644 --- a/app/stiftung/views/unterstuetzungen.py +++ b/app/stiftung/views/unterstuetzungen.py @@ -1813,7 +1813,7 @@ def batch_nachweis_aufforderung_senden(request): @login_required def zahlungs_pipeline(request): - """2c: Zahlungs-Pipeline – 5-Stufen-Kanban-Ansicht.""" + """2c: Zahlungs-Pipeline – 4-Stufen-Kanban-Ansicht.""" heute = date.today() destinataer_id = request.GET.get("destinataer", "") konto_id = request.GET.get("konto", "") @@ -1831,8 +1831,7 @@ def zahlungs_pipeline(request): "offen": qs.filter(status__in=["geplant", "faellig"]).order_by("faellig_am"), "nachweis_eingereicht": qs.filter(status="nachweis_eingereicht").order_by("faellig_am"), "freigegeben": qs.filter(status__in=["freigegeben", "in_bearbeitung"]).order_by("faellig_am"), - "ueberwiesen": qs.filter(status="ausgezahlt").order_by("-ausgezahlt_am"), - "abgeschlossen": qs.filter(status="abgeschlossen").order_by("-ausgezahlt_am"), + "ueberwiesen": qs.filter(status__in=["ausgezahlt", "abgeschlossen"]).order_by("-ausgezahlt_am"), } stage_meta = { @@ -1840,7 +1839,6 @@ def zahlungs_pipeline(request): "nachweis_eingereicht": ("Nachweis eingereicht", "info", "fa-file-alt"), "freigegeben": ("Freigegeben (4-Augen)", "warning", "fa-shield-alt"), "ueberwiesen": ("Überwiesen", "success", "fa-university"), - "abgeschlossen": ("Abgeschlossen", "dark", "fa-check-double"), } pipeline_stages = [ @@ -1852,7 +1850,7 @@ def zahlungs_pipeline(request): "zahlungen": list(pipeline[key]), "gesamt": pipeline[key].aggregate(s=Sum("betrag"))["s"] or Decimal("0"), } - for key in ["offen", "nachweis_eingereicht", "freigegeben", "ueberwiesen", "abgeschlossen"] + for key in ["offen", "nachweis_eingereicht", "freigegeben", "ueberwiesen"] ] destinataere = Destinataer.objects.filter(aktiv=True).order_by("nachname", "vorname") diff --git a/app/templates/stiftung/zahlungs_pipeline.html b/app/templates/stiftung/zahlungs_pipeline.html index 66a2837..5f71099 100644 --- a/app/templates/stiftung/zahlungs_pipeline.html +++ b/app/templates/stiftung/zahlungs_pipeline.html @@ -130,14 +130,6 @@ - {% elif stage.key == 'ueberwiesen' %} -
- {% csrf_token %} - - -
{% endif %}