Add IBAN and Verwendungszweck columns to support list and fix chart growing bug

- Enhanced 'Alle Unterstützungen' view with IBAN and Verwendungszweck columns for better payment tracking
- Updated export functions to handle both legacy 'selected_fields' and new 'fields' parameters
- Added IBAN and Verwendungszweck to default export field selections
- Improved destinataer list UI by adding Status column and removing obsolete study proof field
- Fixed infinite growing animation bug in 'Größen der Grundstücke (Top 30)' chart by replacing Chart.js with CSS-based implementation
- Removed Bootstrap h-100 class conflicts that caused chart resize loops
This commit is contained in:
2025-09-24 22:13:27 +02:00
parent d3ed13dda0
commit b00cf62d87
4 changed files with 106 additions and 53 deletions

View File

@@ -4474,12 +4474,23 @@ def export_unterstuetzungen_csv(request, queryset, selected_ids=None):
if selected_ids:
queryset = queryset.filter(id__in=selected_ids)
# Get selected fields from request (default to all if none specified)
selected_fields_param = (
request.POST.get("selected_fields", "")
if request.method == "POST"
else request.GET.get("selected_fields", "")
)
# Get selected fields from request (handle both 'fields' and 'selected_fields' parameter names)
selected_fields_param = ""
if request.method == "POST":
# Try 'fields' first (new format), then 'selected_fields' (legacy)
fields_list = request.POST.getlist("fields")
if fields_list:
selected_fields_param = ",".join(fields_list)
else:
selected_fields_param = request.POST.get("selected_fields", "")
else:
# Try 'fields' first (new format), then 'selected_fields' (legacy)
fields_list = request.GET.getlist("fields")
if fields_list:
selected_fields_param = ",".join(fields_list)
else:
selected_fields_param = request.GET.get("selected_fields", "")
selected_fields = selected_fields_param.split(",") if selected_fields_param else []
if not selected_fields:
@@ -4488,8 +4499,9 @@ def export_unterstuetzungen_csv(request, queryset, selected_ids=None):
"destinataer_name",
"betrag",
"faellig_am",
"status",
"empfaenger_iban",
"verwendungszweck",
"status",
"empfaenger_name",
"beschreibung",
]
@@ -4671,12 +4683,23 @@ def export_unterstuetzungen_pdf(request, queryset, selected_ids=None):
if selected_ids:
queryset = queryset.filter(id__in=selected_ids)
# Get selected fields from request (default to key fields if none specified)
selected_fields_param = (
request.POST.get("selected_fields", "")
if request.method == "POST"
else request.GET.get("selected_fields", "")
)
# Get selected fields from request (handle both 'fields' and 'selected_fields' parameter names)
selected_fields_param = ""
if request.method == "POST":
# Try 'fields' first (new format), then 'selected_fields' (legacy)
fields_list = request.POST.getlist("fields")
if fields_list:
selected_fields_param = ",".join(fields_list)
else:
selected_fields_param = request.POST.get("selected_fields", "")
else:
# Try 'fields' first (new format), then 'selected_fields' (legacy)
fields_list = request.GET.getlist("fields")
if fields_list:
selected_fields_param = ",".join(fields_list)
else:
selected_fields_param = request.GET.get("selected_fields", "")
selected_fields = selected_fields_param.split(",") if selected_fields_param else []
if not selected_fields:
@@ -4685,6 +4708,8 @@ def export_unterstuetzungen_pdf(request, queryset, selected_ids=None):
"destinataer_name",
"betrag",
"faellig_am",
"empfaenger_iban",
"verwendungszweck",
"status",
"beschreibung",
"ausgezahlt_am",