From f04d93c7f0e77f74904e0dd3bd17d119e5f07ec8 Mon Sep 17 00:00:00 2001 From: Jan Remmer Siebels Date: Sun, 5 Oct 2025 23:42:05 +0200 Subject: [PATCH] feat: Add edit and delete functionality for Verwaltungskosten - Add verwaltungskosten_delete view with confirmation page - Add delete URL route and template - Fix template action buttons to use proper URLs for edit/delete - Include audit logging for deletions - Add comprehensive delete confirmation with entry details - Remove non-functional details button from action group --- app/stiftung/urls.py | 5 + app/stiftung/views.py | 36 ++++++++ .../stiftung/verwaltungskosten_delete.html | 92 +++++++++++++++++++ .../stiftung/verwaltungskosten_list.html | 7 +- 4 files changed, 135 insertions(+), 5 deletions(-) create mode 100644 app/templates/stiftung/verwaltungskosten_delete.html diff --git a/app/stiftung/urls.py b/app/stiftung/urls.py index 4a25ed3..03ec1f6 100644 --- a/app/stiftung/urls.py +++ b/app/stiftung/urls.py @@ -219,6 +219,11 @@ urlpatterns = [ views.verwaltungskosten_edit, name="verwaltungskosten_edit", ), + path( + "geschaeftsfuehrung/verwaltungskosten//loeschen/", + views.verwaltungskosten_delete, + name="verwaltungskosten_delete", + ), path( "verwaltungskosten/mark-paid/", views.mark_expense_paid, diff --git a/app/stiftung/views.py b/app/stiftung/views.py index 03956af..4f90f5c 100644 --- a/app/stiftung/views.py +++ b/app/stiftung/views.py @@ -4203,6 +4203,42 @@ def verwaltungskosten_edit(request, pk): return render(request, "stiftung/verwaltungskosten_form.html", context) +@login_required +def verwaltungskosten_delete(request, pk): + """Lösche Verwaltungskosten""" + from stiftung.models import Verwaltungskosten + + verwaltungskosten = get_object_or_404(Verwaltungskosten, pk=pk) + + if request.method == "POST": + bezeichnung = verwaltungskosten.bezeichnung + + # Log the deletion + from stiftung.audit import log_action + log_action( + request=request, + action="delete", + entity_type="verwaltungskosten", + entity_id=str(verwaltungskosten.pk), + entity_name=bezeichnung, + description=f'Verwaltungskosten "{bezeichnung}" wurden gelöscht', + ) + + verwaltungskosten.delete() + messages.success( + request, + f'Verwaltungskosten "{bezeichnung}" wurden erfolgreich gelöscht.', + ) + return redirect("stiftung:verwaltungskosten_list") + + context = { + "verwaltungskosten": verwaltungskosten, + "title": f"Verwaltungskosten löschen: {verwaltungskosten.bezeichnung}", + } + + return render(request, "stiftung/verwaltungskosten_delete.html", context) + + @login_required def mark_expense_paid(request): """Markiere eine Ausgabe als bezahlt""" diff --git a/app/templates/stiftung/verwaltungskosten_delete.html b/app/templates/stiftung/verwaltungskosten_delete.html new file mode 100644 index 0000000..53df609 --- /dev/null +++ b/app/templates/stiftung/verwaltungskosten_delete.html @@ -0,0 +1,92 @@ +{% extends 'base.html' %} + +{% block title %}Verwaltungskosten löschen - van Hees-Theyssen-Vogel'sche Stiftung{% endblock %} + +{% block content %} +
+
+
+

+ Verwaltungskosten löschen +

+ + Zurück zur Liste + +
+
+
+ +
+
+
+
+
+ Löschen bestätigen +
+
+
+
+ Achtung! Diese Aktion kann nicht rückgängig gemacht werden. +
+ +

+ Sind Sie sicher, dass Sie die folgenden Verwaltungskosten löschen möchten? +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + {% if verwaltungskosten.lieferant_firma %} + + + + + {% endif %} + {% if verwaltungskosten.rechnungsnummer %} + + + + + {% endif %} + +
Bezeichnung:{{ verwaltungskosten.bezeichnung }}
Datum:{{ verwaltungskosten.datum|date:"d.m.Y" }}
Betrag:€{{ verwaltungskosten.betrag|floatformat:2 }}
Kategorie:{{ verwaltungskosten.get_kategorie_display }}
Status: + + {{ verwaltungskosten.get_status_display }} + +
Lieferant/Firma:{{ verwaltungskosten.lieferant_firma }}
Rechnungsnummer:{{ verwaltungskosten.rechnungsnummer }}
+
+ +
+ {% csrf_token %} + + Abbrechen + + +
+
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/app/templates/stiftung/verwaltungskosten_list.html b/app/templates/stiftung/verwaltungskosten_list.html index 1d4ba07..2dd8831 100644 --- a/app/templates/stiftung/verwaltungskosten_list.html +++ b/app/templates/stiftung/verwaltungskosten_list.html @@ -138,13 +138,10 @@