Files
SysAdmin Agent 3ca2706e5d Phase 0: forms.py, admin.py und views.py in Domain-Packages aufteilen
- forms.py → forms/ Package (8 Domänen: destinataere, land, finanzen,
  foerderung, dokumente, veranstaltung, system, geschichte)
- admin.py → admin/ Package (7 Domänen, alle 22 @admin.register dekoriert)
- views.py (8845 Zeilen) → views/ Package (10 Domänen: dashboard, destinataere,
  land, paechter, finanzen, foerderung, dokumente, unterstuetzungen,
  veranstaltung, geschichte, system)
- __init__.py in jedem Package re-exportiert alle Symbole für Rückwärtskompatibilität
- urls.py bleibt unverändert (funktioniert durch Re-Exports)
- Django system check: 0 Fehler, alle URL-Auflösungen funktionieren

Keine funktionalen Änderungen – reine Strukturverbesserung für Vision 2026.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 09:55:15 +00:00

74 lines
2.7 KiB
Python

from django import forms
from ..models import Destinataer, DokumentLink, Foerderung
class FoerderungForm(forms.ModelForm):
"""Form für das Erstellen und Bearbeiten von Förderungen"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Add empty option for optional fields
self.fields["verwendungsnachweis"].empty_label = (
"--- Kein Dokument verknüpfen ---"
)
# Ensure destinataer has proper choices
from django.utils import timezone
from ..models import Destinataer, DokumentLink
self.fields["destinataer"].queryset = Destinataer.objects.all().order_by(
"nachname", "vorname"
)
self.fields["verwendungsnachweis"].queryset = (
DokumentLink.objects.all().order_by("titel")
)
# Set current year as default for new forms
if not self.instance.pk:
self.fields["jahr"].initial = timezone.now().year
class Meta:
model = Foerderung
fields = [
"destinataer",
"jahr",
"betrag",
"kategorie",
"status",
"antragsdatum",
"entscheidungsdatum",
"verwendungsnachweis",
"bemerkungen",
]
widgets = {
"destinataer": forms.Select(attrs={"class": "form-select"}),
"jahr": forms.NumberInput(attrs={"class": "form-control"}),
"betrag": forms.NumberInput(
attrs={"class": "form-control", "step": "0.01"}
),
"kategorie": forms.Select(attrs={"class": "form-select"}),
"status": forms.Select(attrs={"class": "form-select"}),
"antragsdatum": forms.DateInput(
attrs={"class": "form-control", "type": "date"}
),
"entscheidungsdatum": forms.DateInput(
attrs={"class": "form-control", "type": "date"}
),
"verwendungsnachweis": forms.Select(attrs={"class": "form-select"}),
"bemerkungen": forms.Textarea(attrs={"class": "form-control", "rows": 3}),
}
labels = {
"destinataer": "Destinatär",
"verwendungsnachweis": "Verknüpftes Dokument",
"bemerkungen": "Bemerkungen/Beschreibung",
"antragsdatum": "Antragsdatum",
"entscheidungsdatum": "Entscheidungsdatum",
}
help_texts = {
"verwendungsnachweis": "Optionale Verknüpfung zu einem Dokument aus dem Paperless-System",
"entscheidungsdatum": "Datum der Bewilligung/Ablehnung (optional)",
"bemerkungen": "Zusätzliche Informationen zur Förderung",
}