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,56 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bestätigung Ihrer Förderung van Hees-Theyssen-Vogel'sche Stiftung</title>
<style>
body { font-family: Arial, sans-serif; font-size: 15px; color: #222; background: #f5f5f5; margin: 0; padding: 0; }
.container { max-width: 600px; margin: 32px auto; background: #fff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); overflow: hidden; }
.header { background: #1a3a5c; color: #fff; padding: 28px 32px 20px; }
.header h1 { margin: 0 0 4px; font-size: 20px; }
.header p { margin: 0; font-size: 13px; opacity: 0.8; }
.body { padding: 28px 32px; }
.body p { line-height: 1.6; margin: 0 0 16px; }
.info-box { background: #f0f6ff; border: 1px solid #b0cce8; border-radius: 6px; padding: 16px 20px; margin: 20px 0; }
.info-box p { margin: 0 0 8px; }
.info-box p:last-child { margin: 0; }
.footer { background: #f0f0f0; padding: 16px 32px; font-size: 12px; color: #777; border-top: 1px solid #e0e0e0; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>van Hees-Theyssen-Vogel'sche Stiftung</h1>
<p>Bestätigung Ihrer Förderleistungen</p>
</div>
<div class="body">
<p>Sehr geehrte{% if destinataer.anrede == "Herr" %}r Herr{% elif destinataer.anrede == "Frau" %} Frau{% else %}{{ destinataer.anrede }}{% endif %} {{ destinataer.nachname }},</p>
<p>anbei erhalten Sie Ihre persönliche Bestätigung über die Ihnen gewährte
Unterstützung durch die van Hees-Theyssen-Vogel'sche Stiftung{% if zeitraum %}
für den Förderzeitraum {{ zeitraum }}{% endif %}.</p>
<p>Das beigefügte Dokument gilt als offizieller Nachweis der erhaltenen Förderung.</p>
<div class="info-box">
<p><strong>Empfänger:</strong> {{ destinataer.vorname }} {{ destinataer.nachname }}</p>
{% if zeitraum %}<p><strong>Förderzeitraum:</strong> {{ zeitraum }}</p>{% endif %}
{% if gesamtbetrag %}<p><strong>Gesamtbetrag:</strong> {{ gesamtbetrag|floatformat:2 }} €</p>{% endif %}
<p><strong>Erstellt am:</strong> {{ datum|date:"d.m.Y" }}</p>
</div>
<p>Bei Fragen stehen wir Ihnen gerne zur Verfügung.</p>
<p>Mit freundlichen Grüßen</p>
<p><strong>Jan Remmer Siebels</strong> &amp; <strong>Katrin Kleinpaß</strong><br>
Rentmeister / Rentmeisterin<br>
van Hees-Theyssen-Vogel'sche Stiftung</p>
</div>
<div class="footer">
van Hees-Theyssen-Vogel'sche Stiftung &bull; Raesfelder Str. 3 &bull; 46499 Hamminkeln &bull; Tel. 02858/836780<br>
Diese E-Mail wurde automatisch erzeugt. Bitte antworten Sie nicht direkt auf diese E-Mail.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% if ist_erinnerung %}Erinnerung: {% endif %}Nachweis-Aufforderung {{ halbjahr_label }}</title>
<style>
body { font-family: Arial, sans-serif; font-size: 15px; color: #222; background: #f5f5f5; margin: 0; padding: 0; }
.container { max-width: 600px; margin: 32px auto; background: #fff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); overflow: hidden; }
.header { background: #1a3a5c; color: #fff; padding: 28px 32px 20px; }
.header h1 { margin: 0 0 4px; font-size: 20px; }
.header p { margin: 0; font-size: 13px; opacity: 0.8; }
.body { padding: 28px 32px; }
.body p { line-height: 1.6; margin: 0 0 16px; }
.cta-box { background: #f0f6ff; border: 1px solid #b0cce8; border-radius: 6px; padding: 20px; margin: 24px 0; text-align: center; }
.cta-button { display: inline-block; background: #1a3a5c; color: #fff !important; text-decoration: none; padding: 12px 28px; border-radius: 5px; font-weight: bold; font-size: 16px; margin-bottom: 12px; }
.qr-section { margin-top: 12px; }
.qr-section img { width: 140px; height: 140px; display: block; margin: 8px auto 0; }
.qr-section small { display: block; color: #666; font-size: 12px; margin-top: 4px; }
.info-list { background: #fafafa; border-left: 3px solid #1a3a5c; padding: 12px 16px; margin: 16px 0; }
.info-list li { margin-bottom: 4px; }
.footer { background: #f0f0f0; padding: 16px 32px; font-size: 12px; color: #777; border-top: 1px solid #e0e0e0; }
.reminder-banner { background: #fff3cd; border: 1px solid #ffc107; border-radius: 5px; padding: 10px 16px; margin-bottom: 16px; font-weight: bold; color: #856404; }
.url-fallback { font-size: 12px; color: #555; word-break: break-all; margin-top: 8px; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>van Hees-Theyssen-Vogel'sche Stiftung</h1>
<p>Nachweis-Aufforderung &bull; {{ halbjahr_label }}</p>
</div>
<div class="body">
{% if ist_erinnerung %}
<div class="reminder-banner">&#128276; Erinnerung: Ihre Unterlagen stehen noch aus</div>
{% endif %}
<p>Sehr geehrte(r) {{ destinataer.vorname }} {{ destinataer.nachname }},</p>
{% if ist_erinnerung %}
<p>wir möchten Sie daran erinnern, dass Ihre Unterlagen für das <strong>{{ halbjahr_label }}</strong> noch ausstehen.</p>
<p>Der Upload-Link läuft am <strong>{{ gueltig_bis|date:"d.m.Y" }}</strong> ab.</p>
{% else %}
<p>die van Hees-Theyssen-Vogel'sche Stiftung bittet Sie, Ihre Unterlagen für das <strong>{{ halbjahr_label }}</strong> einzureichen.</p>
<p>Bitte reichen Sie bis zum <strong>{{ gueltig_bis|date:"d.m.Y" }}</strong> folgende Unterlagen ein:</p>
<ul class="info-list">
<li>Semesterbescheinigung / Ausbildungsnachweis</li>
<li>Leistungsnachweise (Zeugnisse, Kreditpunkte etc.)</li>
<li>Nachweis über Einkommenssituation und Vermögensverhältnisse</li>
</ul>
{% endif %}
<div class="cta-box">
<a href="{{ upload_url }}" class="cta-button">Unterlagen hochladen</a>
{% if qr_code_base64 %}
<div class="qr-section">
<small>Oder QR-Code scannen:</small>
<img src="data:image/png;base64,{{ qr_code_base64 }}" alt="QR-Code für Upload-Link">
</div>
{% endif %}
<p class="url-fallback">{{ upload_url }}</p>
</div>
<p>Dieser Link ist <strong>einmalig verwendbar</strong> und gültig bis <strong>{{ gueltig_bis|date:"d.m.Y" }}</strong>.</p>
<p>Falls Sie Fragen haben, wenden Sie sich bitte direkt an die Stiftung:<br>
Tel. 02858/836780 &bull; <a href="mailto:Jan.Siebels@gmail.com">Jan.Siebels@gmail.com</a></p>
<p>Mit freundlichen Grüßen</p>
<p><strong>Jan Remmer Siebels</strong> &amp; <strong>Katrin Kleinpaß</strong><br>
Rentmeister / Rentmeisterin</p>
</div>
<div class="footer">
van Hees-Theyssen-Vogel'sche Stiftung &bull; Raesfelder Str. 3 &bull; 46499 Hamminkeln &bull; Tel. 02858/836780<br>
Diese E-Mail wurde automatisch erzeugt. Bitte antworten Sie nicht direkt auf diese E-Mail.
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,37 @@
{% if ist_erinnerung %}ERINNERUNG: {% endif %}Nachweis-Aufforderung {{ halbjahr_label }} van Hees-Theyssen-Vogel'sche Stiftung
================================================================================
Sehr geehrte(r) {{ destinataer.vorname }} {{ destinataer.nachname }},
{% if ist_erinnerung %}
wir möchten Sie daran erinnern, dass Ihre Unterlagen für das {{ halbjahr_label }}
noch ausstehen. Der Upload-Link läuft am {{ gueltig_bis|date:"d.m.Y" }} ab.
{% else %}
die van Hees-Theyssen-Vogel'sche Stiftung bittet Sie, Ihre Unterlagen
für das {{ halbjahr_label }} einzureichen.
Bitte reichen Sie bis zum {{ gueltig_bis|date:"d.m.Y" }} folgende Unterlagen ein:
- Semesterbescheinigung / Ausbildungsnachweis (mindestens einmal jährlich)
- Leistungsnachweise (Zeugnisse, Kreditpunkte etc.)
- Nachweis über Einkommenssituation und Vermögensverhältnisse
(falls sich Veränderungen ergeben haben)
{% endif %}
Ihre Unterlagen können Sie über folgenden Link hochladen:
{{ upload_url }}
Dieser Link ist einmalig verwendbar und gültig bis {{ gueltig_bis|date:"d.m.Y" }}.
Falls Sie den Link nicht verwenden können, wenden Sie sich bitte direkt
an die Stiftung (Tel. 02858/836780 oder Jan.Siebels@gmail.com).
Mit freundlichen Grüßen
Jan Remmer Siebels Katrin Kleinpaß
(Rentmeister) (Rentmeisterin)
van Hees-Theyssen-Vogel'sche Stiftung
Raesfelder Str. 3
46499 Hamminkeln
Tel. 02858/836780
---
Diese E-Mail wurde automatisch erzeugt. Bitte antworten Sie nicht direkt auf diese E-Mail.

View File

@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Onboarding-Einladung vHTV-Stiftung</title>
<style>
body { font-family: Arial, sans-serif; color: #333; background: #f5f5f5; margin: 0; padding: 0; }
.container { max-width: 600px; margin: 32px auto; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.header { background: #2c5f2e; color: #fff; padding: 32px 32px 24px; }
.header h1 { margin: 0; font-size: 22px; }
.header p { margin: 8px 0 0; opacity: 0.85; font-size: 14px; }
.body { padding: 32px; }
.body p { line-height: 1.6; }
.btn { display: inline-block; margin: 24px 0 16px; padding: 14px 28px; background: #2c5f2e; color: #fff !important; text-decoration: none; border-radius: 6px; font-size: 16px; font-weight: bold; }
.info-box { background: #f0f7f0; border-left: 4px solid #2c5f2e; padding: 16px; margin: 20px 0; border-radius: 4px; }
.info-box ul { margin: 8px 0; padding-left: 20px; }
.info-box li { margin: 6px 0; }
.link-fallback { font-size: 12px; color: #666; word-break: break-all; margin-top: 8px; }
.footer { background: #f8f8f8; padding: 20px 32px; font-size: 12px; color: #888; border-top: 1px solid #eee; }
.expiry { color: #c0392b; font-weight: bold; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>van Hees-Theyssen-Vogel'sche Stiftung</h1>
<p>Einladung zum Onboarding-Verfahren</p>
</div>
<div class="body">
<p>Sehr geehrte Damen und Herren,{% if einladung.vorname %} liebe/r <strong>{{ einladung.vorname }}{% if einladung.nachname %} {{ einladung.nachname }}{% endif %}</strong>{% endif %},</p>
<p>Sie wurden zur Aufnahme in die <strong>van Hees-Theyssen-Vogel'sche Stiftung</strong> eingeladen. Um das Antragsverfahren zu starten, klicken Sie bitte auf den folgenden Button:</p>
<a href="{{ onboarding_url }}" class="btn">Jetzt Onboarding starten</a>
<p class="link-fallback">Oder kopieren Sie diesen Link in Ihren Browser:<br>{{ onboarding_url }}</p>
<p class="expiry">Dieser Link ist gültig bis: {{ gueltig_bis|date:"d.m.Y H:i" }} Uhr.</p>
<div class="info-box">
<strong>Was Sie erwartet:</strong>
<ul>
<li>Zustimmung zur Datenschutzerklärung</li>
<li>Persönliche Daten (gemäß Stiftungsmerkblatt)</li>
<li>Angaben zu Ausbildung / Studium</li>
<li>Angaben zur finanziellen Situation</li>
<li>Upload relevanter Dokumente</li>
</ul>
</div>
<p>Nach Abschluss des Verfahrens prüft der Vorstand Ihren Antrag und setzt sich mit Ihnen in Verbindung.</p>
<p>Bei Fragen wenden Sie sich bitte an uns:</p>
</div>
<div class="footer">
van Hees-Theyssen-Vogel'sche Stiftung<br>
Raesfelder Str. 3, 46499 Hamminkeln<br>
Tel. 02858/836780
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,24 @@
Sehr geehrte Damen und Herren,{% if einladung.vorname %} liebe/r {{ einladung.vorname }}{% if einladung.nachname %} {{ einladung.nachname }}{% endif %}{% endif %},
Sie wurden zur Aufnahme in die van Hees-Theyssen-Vogel'sche Stiftung eingeladen.
Um das Antragsverfahren zu starten, folgen Sie bitte diesem Einmal-Link:
{{ onboarding_url }}
Der Link ist gültig bis: {{ gueltig_bis|date:"d.m.Y H:i" }} Uhr.
Im Onboarding-Verfahren werden Sie gebeten:
- der Datenschutzerklärung zuzustimmen,
- Ihre persönlichen Daten anzugeben (gemäß Stiftungsmerkblatt),
- Ausbildungs- und Einkommensnachweise hochzuladen.
Nach Abschluss des Verfahrens prüft der Vorstand Ihren Antrag und setzt sich mit Ihnen in Verbindung.
Falls Sie Fragen haben, wenden Sie sich bitte an:
van Hees-Theyssen-Vogel'sche Stiftung
Raesfelder Str. 3, 46499 Hamminkeln
Tel. 02858/836780
Mit freundlichen Grüßen
van Hees-Theyssen-Vogel'sche Stiftung