Files
stiftung-management-system/app/stiftung/management/commands/restore_vorlagen.py
SysAdmin Agent aed540fe4b
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
Add Vorlagen editor, upload portal, onboarding, and participant import command
- 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>
2026-03-21 09:25:18 +00:00

51 lines
1.8 KiB
Python

"""Management-Command: Stellt alle DokumentVorlage-Einträge aus den Originaldateien wieder her."""
from django.core.management.base import BaseCommand
from stiftung.models import DokumentVorlage
from stiftung.utils.vorlagen import get_vorlage_original
class Command(BaseCommand):
help = "Stellt alle DokumentVorlage-Einträge aus den Original-Dateien wieder her."
def add_arguments(self, parser):
parser.add_argument(
"--dry-run",
action="store_true",
help="Zeigt nur an, was geändert würde, ohne tatsächlich zu ändern.",
)
def handle(self, *args, **options):
dry_run = options["dry_run"]
vorlagen = DokumentVorlage.objects.all()
if not vorlagen.exists():
self.stdout.write(self.style.WARNING("Keine DokumentVorlage-Einträge gefunden."))
return
restored = 0
skipped = 0
for vorlage in vorlagen:
try:
original = get_vorlage_original(vorlage.schluessel)
except FileNotFoundError:
self.stdout.write(
self.style.WARNING(f" SKIP: {vorlage.schluessel} — Original-Datei nicht gefunden")
)
skipped += 1
continue
if dry_run:
self.stdout.write(f" WÜRDE WIEDERHERSTELLEN: {vorlage.schluessel}")
else:
vorlage.html_inhalt = original
vorlage.save(update_fields=["html_inhalt", "zuletzt_bearbeitet_am"])
self.stdout.write(self.style.SUCCESS(f" OK: {vorlage.schluessel}"))
restored += 1
action = "würden wiederhergestellt" if dry_run else "wiederhergestellt"
self.stdout.write(
self.style.SUCCESS(f"\n{restored} Vorlagen {action}, {skipped} übersprungen.")
)