Add Vorlagen editor, upload portal, onboarding, and participant import command
Some checks failed
CI/CD Pipeline / test (push) Has been cancelled
CI/CD Pipeline / deploy (push) Has been cancelled
Code Quality / quality (push) Has been cancelled

- Dokument-Vorlagen-Editor: create/edit/reset document templates (admin)
- Upload-Portal: public portal for Nachweis uploads via token
- Onboarding: invite Destinatäre via email with multi-step wizard
- Bestätigungsschreiben: preview and send confirmation letters
- Email settings: SMTP configuration UI
- Management command: import_veranstaltung_teilnehmer for bulk participant import

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
SysAdmin Agent
2026-03-21 09:25:18 +00:00
parent fdf078fa10
commit aed540fe4b
51 changed files with 5335 additions and 33 deletions

View File

@@ -0,0 +1,97 @@
{% extends "portal/onboarding_basis.html" %}
{% block title %}Schritt 4: Finanzielle Situation{% endblock %}
{% block fortschritt %}
<div class="fortschritt-bar"><div class="fortschritt-fill" style="width:80%"></div></div>
<p class="fortschritt-label">Schritt 4 von 5 Finanzielle Situation</p>
{% endblock %}
{% block inhalt %}
<div class="card mb-3">
<div class="card-header py-3">
<h2>Schritt 4: Finanzielle Situation</h2>
</div>
<div class="card-body">
{% if fehler %}
<div class="alert alert-danger">{{ fehler }}</div>
{% endif %}
<p class="text-muted small">(Merkblatt Punkte 712)</p>
<div class="hinweis-box mb-4">
<strong>Förderbedingungen gem. § 53 AO:</strong> Förderung ist möglich, wenn monatliche Bezüge als Alleinstehende(r) max. <strong>2.245 €</strong> und das Vermögen max. <strong>15.500 €</strong> betragen. Die Sätze erhöhen sich bei weiteren Haushaltsangehörigen. Bitte machen Sie genaue und vollständige Angaben.
</div>
<form method="post">
{% csrf_token %}
<h6 class="text-muted mt-2">Haushaltssituation (Punkt 7)</h6>
<div class="mb-3">
<label for="haushaltstyp" class="form-label">Sind Sie alleinstehend oder Haushaltsvorstand?</label>
<select class="form-select" id="haushaltstyp" name="haushaltstyp">
<option value=""> bitte wählen </option>
<option value="alleinstehend" {% if data.schritt4.haushaltstyp == 'alleinstehend' %}selected{% endif %}>Alleinstehend</option>
<option value="haushaltsvorstand" {% if data.schritt4.haushaltstyp == 'haushaltsvorstand' %}selected{% endif %}>Haushaltsvorstand</option>
<option value="sonstiges" {% if data.schritt4.haushaltstyp == 'sonstiges' %}selected{% endif %}>Sonstiges</option>
</select>
</div>
<div class="mb-4">
<label for="haushaltsgroesse" class="form-label">Welche weiteren Personen/Angehörige leben gegebenenfalls in Ihrem Haushalt?</label>
<textarea class="form-control" id="haushaltsgroesse" name="haushaltsgroesse" rows="2"
placeholder="z.B. Ehepartner/in (45 J.), 2 Kinder (8 J., 12 J.)">{{ data.schritt4.haushaltsgroesse|default:'' }}</textarea>
</div>
<hr class="my-3">
<h6 class="text-muted">Bezüge &amp; Einkommen (Punkte 89)</h6>
<div class="mb-3">
<label for="monatliche_bezuege" class="form-label">Monatliche Bezüge im Sinne des Sozialgesetzbuches (€) (Punkt 8)</label>
<input type="text" class="form-control" id="monatliche_bezuege" name="monatliche_bezuege"
value="{{ data.schritt4.monatliche_bezuege|default:'' }}"
placeholder="z.B. 1.200,00">
<div class="form-text">Einkommensteuerbescheid, Lohn-/Gehaltsnachweis, Rentenbescheid, Pflegegrad etc. bitte im nächsten Schritt hochladen.</div>
</div>
<div class="mb-3">
<label for="bezuege_art" class="form-label">Art der Bezüge (bitte kurz beschreiben)</label>
<input type="text" class="form-control" id="bezuege_art" name="bezuege_art"
value="{{ data.schritt4.bezuege_art|default:'' }}"
placeholder="z.B. BAföG, Rente, Gehalt Teilzeit, Unterhalt">
</div>
<div class="mb-4">
<label for="unterhalt" class="form-label">Unterhaltsleistungen oder sonstige Bezüge, falls zutreffend (€) (Punkt 9)</label>
<input type="text" class="form-control" id="unterhalt" name="unterhalt"
value="{{ data.schritt4.unterhalt|default:'' }}"
placeholder="z.B. 400,00 monatlich vom Vater">
<div class="form-text">Belege bitte im nächsten Schritt hochladen.</div>
</div>
<hr class="my-3">
<h6 class="text-muted">Wohnkosten &amp; Vermögen (Punkte 1011)</h6>
<div class="mb-3">
<label for="miete_heizung" class="form-label">Miet- und Heizungsaufwendungen pro Monat (€) (Punkt 10)</label>
<input type="text" class="form-control" id="miete_heizung" name="miete_heizung"
value="{{ data.schritt4.miete_heizung|default:'' }}"
placeholder="z.B. 650,00">
<div class="form-text">Kopie des Mietvertrags bitte im nächsten Schritt hochladen.</div>
</div>
<div class="mb-4">
<label for="vermoegen" class="form-label">Gesamtvermögen (€) (Punkt 11)</label>
<input type="text" class="form-control" id="vermoegen" name="vermoegen"
value="{{ data.schritt4.vermoegen|default:'' }}"
placeholder="z.B. 3.500,00 (Spar- und Girokonto)">
<div class="form-text">Spar-/Festgeldguthaben, Aktien, Immobilien etc. bitte angeben.</div>
</div>
<hr class="my-3">
<h6 class="text-muted">Lebensunterhalt (Punkt 12)</h6>
<div class="mb-3">
<label for="lebensunterhalt_aufwendungen" class="form-label">Aufwendungen für den Lebensunterhalt und ggf. Unterricht/Studium pro Monat (€)</label>
<input type="text" class="form-control" id="lebensunterhalt_aufwendungen" name="lebensunterhalt_aufwendungen"
value="{{ data.schritt4.lebensunterhalt_aufwendungen|default:'' }}"
placeholder="z.B. 1.100,00">
</div>
<div class="d-flex justify-content-between mt-4">
<button type="submit" name="aktion" value="zurueck" class="btn btn-outline-secondary btn-zurueck">← Zurück</button>
<button type="submit" class="btn btn-primary btn-weiter px-4">Weiter →</button>
</div>
</form>
</div>
</div>
{% endblock %}