Add Verwaltungskosten detail view with linked documents and emails
- New detail view at /geschaeftsfuehrung/verwaltungskosten/<pk>/ showing invoice data, status, linked DMS documents, and emails - Status change form in sidebar for quick workflow updates - Link Verwaltungskosten list items to detail page - Update email detail to link to VK detail instead of edit Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,7 @@ from .finanzen import ( # noqa: F401
|
||||
geschaeftsfuehrung,
|
||||
konto_list,
|
||||
verwaltungskosten_list,
|
||||
verwaltungskosten_detail,
|
||||
rentmeister_list,
|
||||
rentmeister_detail,
|
||||
rentmeister_ausgaben,
|
||||
|
||||
@@ -312,6 +312,38 @@ def verwaltungskosten_list(request):
|
||||
return render(request, "stiftung/verwaltungskosten_list.html", context)
|
||||
|
||||
|
||||
@login_required
|
||||
def verwaltungskosten_detail(request, pk):
|
||||
"""Detailansicht einer Verwaltungskosten-Position mit verknüpften Dokumenten und E-Mails."""
|
||||
from stiftung.models import DokumentDatei, EmailEingang, Verwaltungskosten
|
||||
|
||||
vk = get_object_or_404(Verwaltungskosten, pk=pk)
|
||||
|
||||
if request.method == "POST":
|
||||
action = request.POST.get("action")
|
||||
if action == "set_status":
|
||||
new_status = request.POST.get("status", "")
|
||||
if new_status in dict(Verwaltungskosten.STATUS_CHOICES):
|
||||
vk.status = new_status
|
||||
vk.save()
|
||||
messages.success(request, f"Status auf '{vk.get_status_display()}' gesetzt.")
|
||||
return redirect("stiftung:verwaltungskosten_detail", pk=pk)
|
||||
|
||||
# Verknüpfte DMS-Dokumente
|
||||
dms_dokumente = DokumentDatei.objects.filter(verwaltungskosten=vk).order_by("erstellt_am")
|
||||
|
||||
# Verknüpfte E-Mails
|
||||
email_eingaenge = EmailEingang.objects.filter(verwaltungskosten=vk).order_by("-eingangsdatum")
|
||||
|
||||
context = {
|
||||
"vk": vk,
|
||||
"dms_dokumente": dms_dokumente,
|
||||
"email_eingaenge": email_eingaenge,
|
||||
"status_choices": Verwaltungskosten.STATUS_CHOICES,
|
||||
}
|
||||
return render(request, "stiftung/verwaltungskosten_detail.html", context)
|
||||
|
||||
|
||||
@login_required
|
||||
def rentmeister_list(request):
|
||||
"""Liste aller Rentmeister"""
|
||||
|
||||
Reference in New Issue
Block a user