Implementierung des Veranstaltungsmoduls inkl. Serienbrief-PDF-Generator mit dynamischen, editierbaren Feldern für Betreff und Unterschriften. ### Veranstaltungsmodul (STI-35) - Neues Veranstaltungs-Modell: Titel, Datum, Uhrzeit, Ort, Gasthaus-Adresse, Briefvorlage, Gästeliste (VerstaltungsGast mit freien/Destinatär-Feldern) - Views: Veranstaltungsliste, -detail, Serienbrief-PDF-Generator - Templates: list.html, detail.html, serienbrief_pdf.html (A4, einseitig) - API: Serializer + Endpunkte für Veranstaltungen - Admin: Inline-Bearbeitung der Gästeliste - Migration: 0044_veranstaltungsmodul ### Serienbrief editierbare Felder + PDF-Fix (STI-39) - Neue Felder an Veranstaltung: betreff, unterschrift_1_name/titel, unterschrift_2_name/titel (mit Defaults: Katrin Kleinpaß / Jan Remmer Siebels) - PDF-CSS: Margins, Font-Sizes und Line-Heights reduziert für einseitigen Druck - Migration: 0045_add_serienbrief_editable_fields ### Infrastruktur - scripts/init-paperless-db.sh: Erstellt separate Paperless-DB beim DB-Init - compose.yml: init-paperless-db.sh eingebunden, PAPERLESS_DBNAME-Fix - .gitignore: .claude/ ausgeschlossen Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
1.8 KiB
Python
44 lines
1.8 KiB
Python
# Generated by Django 5.0.6 on 2026-03-10 22:31
|
||
|
||
from django.db import migrations, models
|
||
|
||
|
||
class Migration(migrations.Migration):
|
||
|
||
dependencies = [
|
||
('stiftung', '0044_veranstaltungsmodul'),
|
||
]
|
||
|
||
operations = [
|
||
migrations.AddField(
|
||
model_name='veranstaltung',
|
||
name='betreff',
|
||
field=models.CharField(blank=True, help_text='Betreffzeile des Serienbriefs. Leer = Standardbetreff.', max_length=300, verbose_name='Betreff'),
|
||
),
|
||
migrations.AddField(
|
||
model_name='veranstaltung',
|
||
name='unterschrift_1_name',
|
||
field=models.CharField(blank=True, default='Katrin Kleinpaß', max_length=100, verbose_name='Unterschrift 1 – Name'),
|
||
),
|
||
migrations.AddField(
|
||
model_name='veranstaltung',
|
||
name='unterschrift_1_titel',
|
||
field=models.CharField(blank=True, default='Rentmeisterin', max_length=100, verbose_name='Unterschrift 1 – Titel'),
|
||
),
|
||
migrations.AddField(
|
||
model_name='veranstaltung',
|
||
name='unterschrift_2_name',
|
||
field=models.CharField(blank=True, default='Jan Remmer Siebels', max_length=100, verbose_name='Unterschrift 2 – Name'),
|
||
),
|
||
migrations.AddField(
|
||
model_name='veranstaltung',
|
||
name='unterschrift_2_titel',
|
||
field=models.CharField(blank=True, default='Rentmeister', max_length=100, verbose_name='Unterschrift 2 – Titel'),
|
||
),
|
||
migrations.AlterField(
|
||
model_name='vierteljahresnachweis',
|
||
name='faelligkeitsdatum',
|
||
field=models.DateField(blank=True, help_text='Veraltet - wird durch studiennachweis_faelligkeitsdatum und zahlung_faelligkeitsdatum ersetzt', null=True, verbose_name='Fälligkeitsdatum'),
|
||
),
|
||
]
|