Show linked DMS documents on Verwaltungskosten edit page

- Display linked PDFs/documents in the edit form with download links
- Fix "Details ansehen" button to link to detail page
- Redirect edit save to detail page instead of list

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
SysAdmin Agent
2026-03-12 11:46:58 +00:00
parent 781d410f88
commit 7a9dc533c3
2 changed files with 59 additions and 3 deletions

View File

@@ -705,7 +705,7 @@ def verwaltungskosten_create(request):
def verwaltungskosten_edit(request, pk): def verwaltungskosten_edit(request, pk):
"""Bearbeite bestehende Verwaltungskosten""" """Bearbeite bestehende Verwaltungskosten"""
from stiftung.forms import VerwaltungskostenForm from stiftung.forms import VerwaltungskostenForm
from stiftung.models import Verwaltungskosten from stiftung.models import DokumentDatei, Verwaltungskosten
verwaltungskosten = get_object_or_404(Verwaltungskosten, pk=pk) verwaltungskosten = get_object_or_404(Verwaltungskosten, pk=pk)
@@ -717,13 +717,17 @@ def verwaltungskosten_edit(request, pk):
request, request,
f'Verwaltungskosten "{verwaltungskosten.bezeichnung}" wurden erfolgreich aktualisiert.', f'Verwaltungskosten "{verwaltungskosten.bezeichnung}" wurden erfolgreich aktualisiert.',
) )
return redirect("stiftung:verwaltungskosten_list") return redirect("stiftung:verwaltungskosten_detail", pk=pk)
else: else:
form = VerwaltungskostenForm(instance=verwaltungskosten) form = VerwaltungskostenForm(instance=verwaltungskosten)
# Verknüpfte DMS-Dokumente
dms_dokumente = DokumentDatei.objects.filter(verwaltungskosten=verwaltungskosten).order_by("erstellt_am")
context = { context = {
"form": form, "form": form,
"verwaltungskosten": verwaltungskosten, "verwaltungskosten": verwaltungskosten,
"dms_dokumente": dms_dokumente,
"title": f"Verwaltungskosten bearbeiten: {verwaltungskosten.bezeichnung}", "title": f"Verwaltungskosten bearbeiten: {verwaltungskosten.bezeichnung}",
"submit_text": "Änderungen speichern", "submit_text": "Änderungen speichern",
} }

View File

@@ -15,7 +15,7 @@
<i class="fas fa-arrow-left me-1"></i>Zurück zur Liste <i class="fas fa-arrow-left me-1"></i>Zurück zur Liste
</a> </a>
{% if verwaltungskosten %} {% if verwaltungskosten %}
<a href="#" class="btn btn-outline-info"> <a href="{% url 'stiftung:verwaltungskosten_detail' verwaltungskosten.pk %}" class="btn btn-outline-info">
<i class="fas fa-eye me-1"></i>Details ansehen <i class="fas fa-eye me-1"></i>Details ansehen
</a> </a>
{% endif %} {% endif %}
@@ -245,6 +245,58 @@
</div> </div>
</div> </div>
<!-- Verknüpfte Dokumente (nur bei Bearbeitung) -->
{% if dms_dokumente %}
<div class="row">
<div class="col-12">
<div class="card shadow mb-4">
<div class="card-header py-3 d-flex justify-content-between align-items-center">
<h6 class="m-0 font-weight-bold text-primary">
<i class="fas fa-file-alt me-2"></i>Verknüpfte Dokumente ({{ dms_dokumente.count }})
</h6>
<a href="{% url 'stiftung:dms_upload' %}?kontext=rechnung" class="btn btn-sm btn-outline-primary">
<i class="fas fa-upload me-1"></i>Weiteres Dokument hochladen
</a>
</div>
<div class="card-body p-0">
<div class="list-group list-group-flush">
{% for dok in dms_dokumente %}
<div class="list-group-item d-flex justify-content-between align-items-center">
<div>
{% if dok.is_pdf %}<i class="fas fa-file-pdf text-danger me-2"></i>{% else %}<i class="fas fa-file text-primary me-2"></i>{% endif %}
<a href="{% url 'stiftung:dms_detail' pk=dok.pk %}"><strong>{{ dok.titel }}</strong></a>
<br><small class="text-muted ms-4">{{ dok.dateiname_original }} &middot; {{ dok.get_human_size }} &middot; {{ dok.erstellt_am|date:"d.m.Y" }}</small>
</div>
<a href="{% url 'stiftung:dms_download' dok.pk %}" class="btn btn-sm btn-outline-success" title="Herunterladen">
<i class="fas fa-download"></i>
</a>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
{% elif verwaltungskosten %}
<div class="row">
<div class="col-12">
<div class="card shadow mb-4">
<div class="card-header py-3 d-flex justify-content-between align-items-center">
<h6 class="m-0 font-weight-bold text-primary">
<i class="fas fa-file-alt me-2"></i>Verknüpfte Dokumente
</h6>
<a href="{% url 'stiftung:dms_upload' %}?kontext=rechnung" class="btn btn-sm btn-outline-primary">
<i class="fas fa-upload me-1"></i>Dokument hochladen
</a>
</div>
<div class="card-body">
<p class="text-muted small mb-0">Keine Dokumente verknüpft. Laden Sie die Rechnung als PDF im DMS hoch.</p>
</div>
</div>
</div>
</div>
{% endif %}
<!-- Form Errors --> <!-- Form Errors -->
{% if form.non_field_errors %} {% if form.non_field_errors %}
<div class="row"> <div class="row">