Docs

TEMPLATING

Dokumentation

TEMPLATING

Mit TEMPLATING verwalten Sie Vorlagen (z.B. für Vertrags-PDFs).

Eine Vorlage legt fest:

  • Welcher Text wo steht (Anrede, Klauseln, AGB)
  • Welche Datenfelder eingesetzt werden (Mieter-Name, Vertrags-Nummer, Inventarliste …)
  • Optional: spezielle Inventar-Zeilen / Layout-Bausteine

TEMPLATING unterstützt die System-Dokument-Typen VERTRAG (Seed V34) und RECHNUNG (Seed V62) sowie mandantenindividuelle eigene Dokument-Typen (seit M27-06, V63). Pro Typ wird genau ein Standard-Template gepflegt.


  • Eine Vorlage anlegen (Typ VERTRAG, RECHNUNG oder eigener registrierter Dokument-Typ)
  • Eigene Dokument-Typen anlegen, umbenennen oder löschen (M27-06)
  • Vorlage als Standard pro Dokument-Typ markieren
  • Template-Liste nach Typ filtern
  • Vorlage in der Vorschau (pro Typ) ansehen
  • Mehrere Varianten verwalten (z.B. „Vertrag deutsch“ vs. „Vertrag englisch“, Rechnungsvorlagen)

1) Vorlagen-Liste öffnen

  • Admin → Templating (/settings/admin/templating).
  • Optional per Query-Parameter nach Typ filtern: ?type=VERTRAG bzw. ?type=RECHNUNG (ohne Parameter: alle Typen).

2) Neue Vorlage anlegen

1. „Neu" (/settings/admin/templating/new) — am besten aus der nach dem gewünschten Typ gefilterten Liste heraus: Der Typ wird beim Anlegen aus dem aktiven Typ-Filter übernommen (Default VERTRAG) und ist im Formular als Select sichtbar und änderbar.
2. Felder ausfüllen:

  • Name
  • Body / HTML mit Platzhaltern

3. Speichern (POST /settings/admin/templating).

> Verfügbare Platzhalter hängen vom Typ ab. Beispiel für Vertrag: {{vertrag.id}}, {{mieter.name}}, {{inventar}}. Wenn Sie unsicher sind: Vorschau benutzen.
> Eigene Dokument-Typen nutzen das generische Variablenmodell (Union aus VERTRAG und RECHNUNG).

3) Vorlage bearbeiten

  • Eintrag öffnen (/settings/admin/templating/{id}/edit) → Speichern (POST /settings/admin/templating/{id}).

4) Vorlage als Standard markieren

  • Pro Typ kann genau eine Vorlage als Standard markiert werden.
  • POST /settings/admin/templating/{id}/default.
  • Diese wird beim PDF-Generieren benutzt, wenn keine andere ausgewählt ist.

5) Vorlage löschen

  • POST /settings/admin/templating/{id}/delete.
  • Standard-Vorlagen können nicht gelöscht werden, ohne vorher eine andere als Standard zu wählen.

6) Vorschau

  • POST /settings/admin/templating/preview (M27-08: Parameter dataSource = sample-vertrag / sample-rechnung / UUID eines existierenden Vertrags, content, optional type = registrierter Dokument-Typ und lang = de/en) – zeigt, wie das fertige Dokument mit der Vorlage aussehen würde, ohne ein echtes PDF zu erzeugen. Beispieldaten (sample-vertrag/sample-rechnung) nutzen feste Musterdaten ohne Mandanten-Daten; bei einer Vertrag-UUID wird der live Vertrag gerendert. Der Typ-Parameter wirkt nur im UUID-Fall; bei Beispieldaten ist er durch die Quelle fixiert.

7) Eigene Dokument-Typen verwalten (M27-06)

  • Die Template-Liste enthält einen eigenen Block „Dokument-Typen“ (/settings/admin/templating).
  • Typ anlegen: Schlüssel (nur Großbuchstaben, Ziffern, _, max. 32 Zeichen, z. B. GUTSCHEIN) + Anzeigename → POST /settings/admin/templating/document-types.
  • Typ umbenennen: „Bearbeiten"-Button in der Typ-Tabelle (links neben „Löschen"); öffnet das Inline-Formular (Speichern/Abbrechen). Nur die Anzeigebeschriftung ändert sich, der Schlüssel bleibt stabil → POST /settings/admin/templating/document-types/{id}.
  • Typ löschen: nur möglich, solange keine Vorlagen dieses Typs existieren → POST /settings/admin/templating/document-types/{id}/delete.
  • Die System-Typen VERTRAG und RECHNUNG sind gesperrt (kein Umbenennen/Löschen).
  • Vorlagen dürfen nur Typen zuweisen, die in der Registry existieren; eigene Typen nutzen das generische Variablenmodell (Union aus VERTRAG und RECHNUNG).
  • Beispielvorlagen für eigene Typen (Copy & Paste): How-To/Templates/ im Repository-Root — 17 kopierfertige Templates (u. a. Gutschein, Angebot, Kündigung, Rückgabe, Abholung, Kaution, Mängelprotokoll, Verlängerung, Zahlungserinnerung, Mahnung, Gutschrift, Storno, Zahlungseingang, Anfrage-/Buchungsbestätigung, Lieferschein, Inventarliste), inkl. README mit Schritt-für-Schritt-Anleitung.

„Mein Platzhalter wird nicht ersetzt“

  • Schreibweise prüfen (Klammern, Punkte, Klein-/Großschreibung).
  • Wert ist evtl. leer (z.B. Mieter ohne Telefon).

„PDF sieht zerschossen aus“

  • HTML-/CSS-Fehler in der Vorlage. Vorschau benutzen.
  • Bilder: müssen zugängliche URLs / eingebettete Daten sein.

„Welche Vorlage wird im Vertrag verwendet?“

  • Seit M27-07 bestimmt der im Vertrag gespeicherte Dokument-Typ (Feld

„Dokument-Typ" im Vertrag-Formular, Default VERTRAG, V64): „PDF
generieren" rendert die Standard-Vorlage dieses Typs. Bei VERTRAG gilt
zusätzlich der Legacy-Flow (gespeichertes geschütztes PDF).

  • Eine explizite Template-Auswahl pro Vertrag wurde entfernt; ad hoc geht es

über die Query-Parameter type/template von /pdf und /generate.


Admin (/settings/admin/templating):

  • GET /settings/admin/templating – Liste (optional: ?type=)
  • GET /settings/admin/templating/new – Neu
  • POST /settings/admin/templating – Anlegen
  • GET /settings/admin/templating/{id}/edit – Bearbeiten
  • POST /settings/admin/templating/{id} – Speichern
  • POST /settings/admin/templating/{id}/delete – Löschen
  • POST /settings/admin/templating/{id}/default – als Standard pro Typ markieren
  • POST /settings/admin/templating/preview – Vorschau (M27-08: dataSource = sample-vertrag/sample-rechnung/Vertrags-UUID, content, optional type=, lang=de|en)
  • POST /settings/admin/templating/document-types – Dokument-Typ anlegen (typeKey, label)
  • POST /settings/admin/templating/document-types/{id} – Dokument-Typ umbenennen (label)
  • POST /settings/admin/templating/document-types/{id}/delete – Dokument-Typ löschen

  • TEMPLATING ist eng mit VERTRAG (Dokument-Generierung: Vertrag & Rechnung) verbunden.
  • Verfügbare Dokument-Typen: System-Typen VERTRAG und RECHNUNG (Standard-Templates via Flyway: V34 / V62) sowie mandantenindividuell registrierte eigene Typen (M27-06, Tabelle templating_document_type, V63).
  • Vorlagen dürfen nur registrierte Typen verwenden; eigene Typen erhalten das generische Variablenmodell (Union aus VERTRAG und RECHNUNG).
  • Seit M27-07 (V64) trägt jeder Vertrag einen Dokument-Typ (vertrag.document_type); „PDF generieren" im Vertrag rendert den Default-Template dieses Typs (nur VERTRAG nutzt den Legacy-Pfad mit gespeichertem PDF).
  • Halten Sie Vorlagen sauber und übersichtlich – „eine Standardvorlage pro Typ + ein paar Varianten“ ist meist besser als zehn fast identische Dateien.