TribeManager ist eine Vorabversion. Es gibt noch keine versionierte Veröffentlichung und keinen Aktualisierungspfad zwischen Versionen: die Datenbankstruktur ändert sich weiterhin, und es gibt nichts, was Ihre Daten von einem Stand zum nächsten überträgt. Eine heute eingerichtete Instanz lässt sich mit einem späteren Stand möglicherweise nicht mehr öffnen, und die darin enthaltenen Daten sind dann unter Umständen nicht wiederherstellbar.

Nutzen Sie die Software, um sie anzusehen, zu bewerten und uns zu sagen, was daran nicht stimmt. Nutzen Sie sie nicht als einzigen Ort, an dem Ihre Organisation Informationen aufbewahrt, deren Verlust sie sich nicht leisten kann.

Dieses Handbuch richtet sich an Administratoren: die Personen, die eine Organisation einrichten, festlegen, welche Module aktiv sind, für jedes Modul den Komplexitätsmodus wählen, Felder und Kategorien konfigurieren und Berechtigungen verwalten.

Es ist nach Komplexitätsmodus gegliedert (siehe SPEC.md, Modul-Komplexitätsmodi): einfach, fortgeschritten, dann Experte. Die Konfigurationsfläche wächst mit jedem Modus.

1. Grundkonfiguration

Administration im einfachen Modus: das Minimum, um eine Organisation aufzusetzen und Module zu aktivieren. Sinnvolle Vorgaben werden vorausgesetzt, daher gibt es wenig zu konfigurieren - aktivieren Sie die benötigten Module und legen Sie los.

1.1. Module

Einstellungen → Module listet jedes Modul auf, das die Instanz mitbringt, mit zwei Einstellungen je Zeile: ob eure Organisation es benutzt, und wie viel davon gezeigt wird (der Komplexitätsmodus).

Der Modus ist auch aus dem Modul selbst heraus erreichbar: die Abschnittsleiste jedes Moduls endet mit einem Reiter Einstellungen, und der Komplexitätsmodus steht dort an erster Stelle. Beide Stellen zeigen eine Einstellung und nicht zwei - ändern Sie sie an der einen, sagt es die andere. Ein Modul, an dem es sonst nichts zu konfigurieren gibt, zeigt allein diesen Schalter; genau so sieht der einfache Modus aus.

Ein abgeschaltetes Modul verschwindet aus der Navigation und antwortet nicht mehr. Verloren geht dabei nichts: seine Datensätze, die Verknüpfungen anderer Module dorthin und sein Komplexitätsmodus bleiben unverändert, und beim Wiedereinschalten ist alles wieder da. Genau darin unterscheidet sich das Abschalten vom Entfernen - Daten zu löschen ist ein eigener, bewusster Schritt.

Bevor ein Modul ausgeht, nennt TribeManager, was dann nicht mehr angezeigt wird und wie viel es ist - etwa, dass vier Aufgaben und zwölf Reservierungen damit verknüpft sind. Nichts davon wird gelöscht; es wird nur nicht mehr gezeigt, bis das Modul zurückkommt.

Beim ersten Einschalten bringt ein Modul seine Voreinstellungen mit - Kontaktfelder, Beziehungsarten, Teilnahmerollen. Spätere Einschaltvorgänge finden vor, was schon da ist, und lassen es unangetastet, auch eure Änderungen daran.

1.2. Kontakte

Jede Organisation startet mit den vCard-orientierten Standardfeldern. Im einfachen Modus trägt ein Kontakt nur seinen Namen (FN) - genug, um Kontakte auseinanderzuhalten und mit Terminen, Aufgaben und dem Rest zu verknüpfen.

1.2.1. Komplexitätsmodus

Kontakte → Einstellungen öffnet mit dem Auswahlschalter Komplexitätsmodus - einfach, fortgeschritten oder Experte -, und die Kontaktkonfiguration selbst liegt hinter demselben Reiter, so weit der Modus reicht: einfach bietet nur den Modus, fortgeschritten kommt Kontaktfelder hinzu, im Expertenmodus zusätzlich Beziehungsarten. Der Modus steuert, wie viel Kontaktkonfiguration Sie sehen und wie viele Felder Kontakte anbieten:

  • Einfach - nur der Name.

  • Fortgeschritten - der Alltagssatz (Name, strukturierter Name, E-Mail, Telefon, Adresse, Geburtstag), den Sie ein- und ausschalten und erweitern können.

  • Experte - die vollständige Feldkonfiguration.

Das Anheben oder Absenken des Modus löscht nie Daten: ein von einem niedrigeren Modus verstecktes Feld erscheint wieder, sobald Sie den Modus anheben.

1.3. Termine

Jede Organisation startet mit vier Teilnahmerollen, benannt nach den Rollen des Kalenderstandards selbst: Vorsitz, erforderlich, optional, Beobachter. Es sind gewöhnliche Daten - benennen Sie sie so um, wie Ihre Organisation sie tatsächlich nennt, der Export funktioniert weiterhin, da jede Rolle die Standardrolle trägt, auf die sie abgebildet wird.

1.4. Finanzen

Richten Sie ein Konto pro Ort ein, an dem tatsächlich Geld liegt - ein Bankkonto, eine Kasse - und eines pro Währung: ein Konto führt eine einzige Währung, sodass sein Saldo eine Zahl ist und keine Tabelle.

Bauen Sie den Kategorienbaum unter den beiden festen Wurzeln auf, Einnahmen und Ausgaben. Sie sind fest, weil die Einnahmen-Überschuss-Rechnung Einnahmen minus Ausgaben ist und eine dritte Wurzel eine Zahl wäre, für die der Bericht keine Zeile hätte. Darunter gehört der Baum ganz Ihnen, so grob oder so detailliert, wie Sie wollen.

Mitgliedsbeitragsregeln, Mahnwesen und SEPA-Mandate sind nicht Teil der Grundfläche und noch nicht gebaut.

1.5. Dokumente

Dateiinhalte werden standardmäßig in der Datenbank gespeichert, sodass ein einziges pg_dump Ihre Kontakte, Ihre Bücher und Ihre Dateien gemeinsam sichert. Das ist eine bewusste Entscheidung fürs Selbsthosting: der häufigste Weg, Dokumente zu verlieren, ist, die Datenbank zu sichern und dabei das Dateiverzeichnis zu vergessen.

tribemanager.documents.max-size-bytes legt die größte Datei fest, die die Instanz akzeptiert - standardmäßig 25 MiB. Es ist die einzige Beschränkung in TribeManager, die ablehnt statt zu warnen, weil sie die Instanz selbst schützt. Erhöhen Sie sie, wenn Ihre Organisation es tatsächlich braucht, und erhöhen Sie quarkus.http.limits.max-body-size gleich mit, sonst werden Uploads abgelehnt, bevor die Anwendung erklären kann, warum.

1.6. Transaktionale E-Mails

Einladungen, Aktualisierungen, Stornierungen und Erinnerungen werden über ein SMTP-Relay verschickt, auf das Sie die Instanz verweisen - Ihren eigenen Mailserver, den Ihres Anbieters, alles, was SMTP spricht. Es wird kein Maildienst benötigt, und keiner wird kontaktiert, solange Sie keinen konfigurieren.

Einstellung Was sie bewirkt

QUARKUS_MAILER_HOST, QUARKUS_MAILER_PORT

Ihr SMTP-Relay. Benutzername und Passwort kommen in QUARKUS_MAILER_USERNAME und QUARKUS_MAILER_PASSWORD, wo das Relay sie erwartet.

QUARKUS_MAILER_FROM

Die Absenderadresse, unter der Mail verschickt wird.

tribemanager.mail.locale

Die Sprache, in der transaktionale Mail verfasst wird (en oder de). Eine Spracheinstellung pro Organisation folgt, sobald Organisationen konfigurierbar werden.

tribemanager.reminders.interval

Wie oft die Erinnerungswarteschlange geprüft wird. Standardmäßig eine Minute, was für in Stunden und Tagen gemessene Erinnerungen passt.

Kann eine Nachricht nicht zugestellt werden, wird der Fehler protokolliert, und die Arbeit, die ihn ausgelöst hat, bleibt bestehen: eine Einladung, die nicht zugestellt werden konnte, ist ein Mailproblem, und sie macht die Teilnahme, zu der sie gehörte, nie rückgängig.

Der Entwicklungsstack (compose.dev.yaml) enthält Mailpit unter http://localhost:8025. Es nimmt alles an, was die Anwendung sendet, zeigt es auf einer Webseite an und liefert nichts weiter aus - sodass Sie genau sehen können, wie eine Einladung aussieht, ohne dass ein echtes Postfach oder ein echter Empfänger beteiligt wäre.

Weitere Administration im einfachen Modus (Installation und Erststart, Modulauswahl) wird hier ergänzt, sobald sie fertig ist.

2. Erweiterte Konfiguration

Administration im fortgeschrittenen Modus: benutzerdefinierte Felder, Kategorien, Beziehungsarten und die übrige kuratierte Konfiguration, die der fortgeschrittene Modus zusätzlich zu den Grundvorgaben freischaltet.

2.1. Kontakte

Im fortgeschrittenen Modus konfiguriert der Bildschirm Kontaktfelder zusätzlich zum verpflichtenden Namen die Alltags-Standardfelder vor - strukturierter Name, E-Mail, Telefon, Adresse, Geburtstag. Sie können:

  • Ein nicht benötigtes Standardfeld deaktivieren. Es wird versteckt, nicht gelöscht, und kann jederzeit wieder aktiviert werden.

  • Eigene Felder hinzufügen - geben Sie jedem eine Bezeichnung, einen Typ (Text, Zahl oder Datum) und legen Sie fest, ob es Pflicht ist. Ein neues Feld ergänzt das Profil jedes Kontakts.

  • Die Bezeichnung, den Typ oder die Pflichtangabe eines Feldes bearbeiten, oder ein selbst angelegtes Feld löschen.

Keine Feldänderung verliert Daten: Deaktivieren oder Löschen versteckt ein Feld nur, seine Historie bleibt erhalten.

Jede Organisation wird mit einem Standard-Vokabular für Beziehungsarten ausgeliefert (Mitglied, Kunde, Lieferant, Partner, Spender, Veranstaltungsort). Nur die Art Mitglied trägt einen Status; Sie können das Vokabular über die API um eigene Arten erweitern (PUT /api/v1/relationship-types/{name}).

2.1.1. Kontakte importieren

Der Bildschirm Import überführt eine bestehende Mitgliederliste aus einer CSV-Datei: laden Sie die Datei hoch, ordnen Sie jede Spalte einem Feld zu und wählen Sie - um Duplikate zu vermeiden - ein Abgleichsfeld, sodass eine Zeile den passenden Kontakt aktualisiert, statt einen neuen anzulegen. Zeilen werden nie abgelehnt; alles Unvollständige wird importiert und als Warnung markiert.

2.2. Termine

Die Teilnahmerollen Ihrer Organisation können Sie selbst benennen. Die vier mitgelieferten - Vorsitz, erforderlich, optional, Beobachter - tragen die Abbildung, die der Kalenderstandard erwartet, und das gilt auch für jede Rolle, die Sie hinzufügen, weshalb ein selbst erfundenes Vokabular trotzdem verlustfrei exportiert und importiert wird.

2.3. Finanzen

Die erweiterte Finanzverwaltung ist vorhanden: Beitragsregeln, die an Beziehungsarten und Status geknüpft sind, der Abgleich von Zahlungen gegen Erwartungen und der Kontoauszugsimport im Format camt.053. Mahnwesen ist entworfen, aber nicht gebaut. Die Grundfläche (Konten, Kategorien, Buchungen, die Einnahmen-Überschuss-Rechnung) ist vollständig und das, was eine Organisation braucht, um heute Buch zu führen.

2.3.1. Kontoauszüge ohne Hochladen

Eine camt.053-Datei wird normalerweise von Hand hochgeladen, und das bleibt weiterhin möglich. Sie kann auch eingesammelt werden: setzen Sie tribemanager.banking.watch.directory auf ein Verzeichnis und tribemanager.banking.watch.account auf das Konto, zu dem die Kontoauszüge gehören, und alles, was dort landet, wird beim nächsten Durchlauf importiert (tribemanager.banking.watch.interval, standardmäßig 15 Minuten).

Was in dieses Verzeichnis schreibt, liegt außerhalb von TribeManager - der Download der Bank selbst, aqbanking per Zeitplan, eine Netzwerkfreigabe, auf die der Kassenwart Dateien legt. Das ist Absicht: es wird nie eine Bank-Zugangsdaten gespeichert, und keine Bank wird je kontaktiert.

Importierte Dateien wandern nach done/ innerhalb des Verzeichnisses, nicht lesbare nach failed/. Nichts wird gelöscht, und eine Datei, die noch kopiert wird, bleibt unangetastet, bis sie sich nicht mehr ändert. Denselben Kontoauszug zweimal zu importieren ist harmlos - bereits gebuchte Buchungen werden erkannt und übersprungen.

2.3.2. Spenden, und was vor einer Bescheinigung nötig ist

Markieren Sie die Kategorie, unter der Ihre Spenden gebucht werden - das Kontrollkästchen an einer Einnahmenkategorie - und alles darunter zählt mit. Nichts anderes kann Spenden erkennen: nicht der Betrag, nicht die zahlende Person, nicht die Beschreibung, und kein mitgeliefertes Vokabular weiß, wie Ihre Organisation ihre eigenen Zuwendungen nennt. Nur gebuchte Posten mit Namensnennung werden gezählt; eine anonyme Spende bleibt in den Büchern, ohne dass es jemanden gibt, dem eine Bescheinigung ausgestellt werden könnte, und eine geplante Buchung ist kein eingegangenes Geld.

Die Markierung wird zusammen mit der Kategorie revisioniert, sodass, was 2026 als Spende zählte, 2036 immer noch so gelesen wird.

2.4. Berechtigungsgruppen

Anlegen, ändern und löschen darf nur, wer die Berechtigungsgruppen selbst bearbeiten besitzt - und dieses Recht liegt in der Gruppe administration, mit der jede Organisation startet.

Zwei Regeln sollte man vorher kennen.

Austeilen kann man nur, was man selbst hat. Ein Recht in eine Gruppe zu legen wird abgelehnt, solange die eigene Sitzung es nicht bereits trägt - sonst wäre ausgerechnet das Recht über die Rechte der Weg, sich alles andere zu geben. Ein Recht zu entziehen oder eine Gruppe umzubenennen wird dadurch nie abgelehnt, auch bei einer Gruppe, die mehr trägt als man selbst - nur eine Erweiterung braucht die eigene Sitzung schon vorher.

Und man kann sich das letzte selbst nehmen. TribeManager hält einen nicht davon ab: in einer Organisation mit mehreren Administrationen ist das Entziehen der ersten genau das, wofür die zweite da ist, und eine Sperre könnte diesen Fall nicht von dem unterscheiden, in dem man die Tür hinter sich zuzieht. Passiert es doch bei konfiguriertem Login, gibt es zwei Wege zurück - jemand anderes, der das Recht noch hat, oder andernfalls die Datenbank. Eine zweite Administration lohnt sich aus demselben Grund wie ein zweiter Schlüssel zum Vereinsheim.

Ist kein Identitätsanbieter konfiguriert, gibt es diesen anderen Jemand von vornherein nicht - deshalb kann es hier nicht dazu kommen: Bei jedem Start wird erneut durchgesetzt, dass die Gruppe administration ihren vollen Umfang an Rechten und Sonderrechten trägt, unabhängig davon, was zuvor herausgenommen wurde. Die Mitgliedschaft bleibt änderbar, nur die Rechte der Gruppe selbst lassen sich in dieser Konfiguration nicht weggeben.

2.5. Compliance

Die deutsche Zuwendungsbestätigung und die Auskunftsanfrage leben in einem Compliance-Modul, das Sie ersetzen können. Es benötigt von Ihnen die Handvoll Fakten, die ein gesetzliches Formular verlangt und das Kontaktmodell nicht trägt:

tribemanager.compliance.issuer.address

Die Postanschrift der Organisation

tribemanager.compliance.issuer.tax-office

Das Finanzamt, das die Gemeinnützigkeit anerkannt hat

tribemanager.compliance.issuer.exemption-notice

Aktenzeichen und Datum des Freistellungsbescheids

tribemanager.compliance.issuer.signatory

Wer unterzeichnet - ein Name und eine Rolle

Eine Angabe leer zu lassen ist erlaubt. Sie erscheint dann als sichtbare Lücke im Dokument, die jemand sehen und ausfüllen kann; eine Bescheinigung, die das Finanzamt stillschweigend wegließe, wäre schlimmer.

Erweiterte Konfiguration für Aufgaben, Inventar und Dokumente wird hier ergänzt, sobald sie fertig ist.

3. Expertenkonfiguration

Administration im Expertenmodus: die vollständige Konfigurationsfläche - jeder Feldtyp, jede Kategoriendimension, jede Berechtigungsvergabe, jede Beitragsregel und jede Modul-Option, die die Plattform ausdrücken kann. Maximale Kontrolle, maximale Komplexität.

3.1. Kontakte

Der Expertenmodus legt die vollständige Kontaktfeldkonfiguration offen:

  • Jeder Feldtyp, einschließlich Einzelauswahl-Enum-Felder mit einer festgelegten Menge von Optionsschlüsseln.

  • Art-Beschränkung - ein Feld auf Personen-, Organisations- oder Ortskontakte begrenzen.

  • Alle erweiterten Aktionen (hinzufügen, bearbeiten, deaktivieren, löschen).

Mitgelieferte Standardfelder können deaktiviert, aber nicht gelöscht werden (sie würden nur wieder neu angelegt); von Ihnen hinzugefügte Felder können vollständig gelöscht werden.

3.2. Beziehungsarten

Der Expertenmodus übergibt das Beziehungsvokabular selbst. Unter Beziehungsarten entscheiden Sie, welche Arten von Verbindung zwischen Ihrer Organisation und ihren Kontakten existieren - Mitglied, Lieferant, Sponsor, was auch immer Ihre Organisation tatsächlich hat -, für welche Kontaktarten jede gilt und ob sie den Mitgliedsstatus-Lebenszyklus trägt (Anwärter, aktiv, passiv, Ehrenmitglied, ausgetreten).

Der Name ist der Schlüssel: das Schreiben eines bereits existierenden Namens definiert diese Art neu, ein neuer Name fügt eine hinzu. Es gibt kein Löschen - eine Art, mit der Kontakte verbunden waren, ist Teil des Datensatzes, und der fortgeschrittene Modus nutzt einfach das mitgelieferte Vokabular, wie es ist.

3.3. Eine Anmerkung zu Modi

Ein Komplexitätsmodus ändert, was angezeigt wird, nie, was gespeichert wird. Ein Modul auf Experte anzuheben legt mehr Konfiguration offen; es wieder abzusenken versteckt diese Konfiguration und die Felder, die sie angelegt hat, und löscht nichts. Es gibt also kein Risiko, einen höheren Modus auszuprobieren, und keine Migration, wenn Sie ihn wieder verlassen.

3.4. Dokumentvorlagen

Der Expertenmodus ergänzt das Dokumentenmodul um Vorlagen: das Formular, das Sie ohnehin haben, dazu eine Regel, was wohin gehört, und daraus eine ausgefüllte Fassung pro teilnehmender Person.

3.4.1. Eine Vorlage anlegen

Laden Sie das PDF zuerst als gewöhnliches Dokument hoch - es wird gespeichert, versioniert und gelöscht wie jede andere Datei. Legen Sie dann unter Dokumente → Vorlagen eine Vorlage an, die darauf zeigt, geben Sie ihr einen Namen und tragen Sie die Versionsbezeichnung der herausgebenden Stelle ein, falls das Formular eine trägt ("2024-1", "Jan 2026"). Diese Bezeichnung ist eine Notiz an Sie selbst: nichts vergleicht zwei Bezeichnungen, und was sich tatsächlich geändert hat, hält die interne Änderungshistorie fest.

3.4.2. Der Zuordnungs-Editor

Der Vorlagen-Editor zeigt die Datei, die er zuordnet. Haben Sie das Quell-PDF noch nicht hochgeladen, wählen Sie neues Dokument in der Auswahl des Quelldokuments - das gewöhnliche Upload-Formular erscheint direkt dort, und was hochgeladen wird, ist im Moment des Hochladens bereits ausgewählt, genau wie es auch in der Dokumentenliste erscheinen würde. Ein versehentlich gewähltes Dokument ist danach ein gewöhnliches Dokument zum Löschen, kein Sonderfall zum Rückgängigmachen.

Formularfelder und Zonen sind eine Liste, mit einer Spalte, die zeigt, um welche Art es sich bei jeder Zeile handelt, neben einer Vorschau der Seite, sobald der Bildschirm für beides Platz hat. Jede zugeordnete Stelle wird auf ihrer Seite als beschriftetes Feld gezeichnet - ein Formularfeld an dem Rechteck, das das PDF selbst meldet, eine Zone an dem Rechteck, das Sie gezeichnet haben - mit dem Feldnamen darauf, abgeschnitten, wenn das Feld dafür zu klein ist. Ein Feld mit Inhalt wird von einem ohne Inhalt durch Farbe und durch einen anderen Rahmenstil unterschieden, damit der Unterschied nicht davon abhängt, Farben überhaupt sehen zu können.

Zeigen Sie auf eine Zeile in der Liste, wird ihr Feld in der Vorschau hervorgehoben, und zeigen Sie auf ein Feld, wird seine Zeile hervorgehoben - und das funktioniert genauso über die Tastatur: Tabben zu einer Zeile oder der Fokus auf ein Feld hebt die jeweils andere Seite ebenso hervor. Bei einem Formular mit vierzig Feldern ist das, was die Orientierung behält.

Ein Feld, das Ihre Organisation nie ausfüllen wird, lässt sich über die Aktion der eigenen Zeile ausblenden - das Ausblenden wird gemerkt, nicht nur für die laufende Sitzung gefiltert, und bleibt daher auch beim nächsten Öffnen der Vorlage ausgeblendet. Eine Zeile am Ende der Liste nennt, wie viele Felder ausgeblendet sind, und lässt Sie sie einzeln wieder einblenden. Wird das Quell-PDF später ersetzt und das eigene PDF-Feld eines ausgeblendeten Feldes existiert darin nicht mehr, verschwindet auch das ausgeblendete Feld - es gibt dann nichts mehr, das sich ausblenden ließe.

3.4.3. Die zwei Wege, einen Wert zu verorten

  • Formularfelder. Ein PDF mit interaktiven Formularfeldern listet diese im Editor mit Namen auf. Wählen Sie zu jedem Namen eine Datenquelle; der Rest bleibt leer.

  • Zonen. Ein PDF, das nur ein festes Layout ist, trägt keine Namen. Dort ziehen Sie stattdessen ein Rechteck auf der Seite auf und sagen, was hineingehört - Schriftgröße, fett oder kursiv, Ausrichtung. Ein Wert, der länger ist als sein Rechteck, wird abgeschnitten und nicht verkleinert: das Formular stammt von jemand anderem, und ein stiller Umbruch würde dessen Dokument verändern.

Beides lässt sich in einer Vorlage mischen, und das ist der Normalfall: das Formular eines Verbands bietet meist ein paar Felder an und nichts für das, was Sie eigentlich ergänzen wollen.

Was an einer Stelle steht, ist ein Werteausdruck statt einer einzelnen Quelle: fester Text, ein Platzhalter wie {contact.n.given}, oder mehrere zu einem Satz zusammengesetzt - Ausgestellt in {organization.adr.locality} am {event.endDate}. Eine Quelle aus einer Liste zu wählen bleibt der übliche Weg und schreibt einfach einen Platzhalter; ein Umschalter Als Text bearbeiten daneben erreicht den Ausdruck selbst, wenn ein Wert ein Satz statt eines einzelnen Feldes sein soll. Die vier Quellen, die ein Platzhalter benennen kann, sind ein Kontaktfeld (jedes Feld, das Ihre Organisation konfiguriert hat), ein Veranstaltungsfeld (Titel, Beginn- und Enddatum, Beginn- und Endzeit, Name des Orts), ein Teilnahmefeld (die eigenen Daten der teilnehmenden Person) oder ein Organisationsfeld - dasselbe Feldvokabular wie beim Kontakt, aber am eigenen Knoten Ihrer Organisation gelesen statt an der Person, für die das Dokument bestimmt ist; so gelangen ein Briefkopf oder eine Registriernummer auf ein Formular, ohne dass jemand sie erneut eintippt. Felder werden über ihren Schlüssel gespeichert; eine Vorlage bricht also nicht, wenn Sie später die Beschriftung eines Feldes ändern.

Ein Platzhalter, der etwas Nichtexistierendes benennt, blockiert das Speichern nie: er wird als Warnung am Feld angezeigt und bleibt bei der Erzeugung eines Dokuments einfach leer. Nichts an einer Zuordnung hält einen Erzeugungslauf je auf.

3.4.4. Kontrollkästchen, Radiogruppen und Auswahlfelder

Ein Formularfeld, das das PDF selbst als Kontrollkästchen führt, wird nicht mit Text gefüllt: sein Werteausdruck bleibt zwar bestehen, aber was tatsächlich mit dem Kästchen geschieht, ist eine von fünf Bedingungen darüber - immer angehakt, nie angehakt (um ein Kästchen zu leeren, das die Quell-PDF bereits angehakt mitbringt - ein erzeugtes Dokument wird geglättet, ein nicht zugeordnetes Kästchen bleibt also genau so, wie es in der Quelle war, und ein Leeren muss sich ausdrücken lassen), angehakt, wenn der Wert nicht leer ist, oder angehakt, wenn der Wert gleich oder enthält einem von Ihnen angegebenen Vergleichstext ist. Ein regulärer Ausdruck ist bewusst nicht vorgesehen - kaum jemand kann einen schreiben, und es wäre die einzige Eingabe, die sich verselbständigen könnte, während gerade ein Stapel Dokumente erzeugt wird.

Eine Radiogruppe oder ein Auswahlfeld (eine Kombinations- oder Listenbox) nimmt einen einzigen Ausdruck für das ganze Feld, nie einen je Option: was er ergibt, wird gegen die Exportwerte abgeglichen, die das PDF selbst für dieses Feld führt - zuerst genau, dann ohne Rücksicht auf Groß-/Kleinschreibung -, sodass nie unklar bleiben kann, welche Option gemeint ist. Diese Exportwerte werden aus der Datei gelesen und direkt neben dem Ausdrucks-Editor zur Auswahl angeboten, sodass Sie aus dem Vokabular des Formulars selbst wählen statt /Yes oder /1 auswendig einzutippen; eine Auswahl schreibt den Wert einfach als festen Text in den Ausdruck, und wer stattdessen einen Ausdruck schreibt, lässt die Wahl von den Daten entscheiden. Kein Treffer lässt das Feld genau so, wie es war, und wird als Warnung festgehalten - ein Erzeugungslauf scheitert nie an einem einzelnen.

3.4.5. Ein Feld markieren

Jede zugeordnete Stelle - ein AcroForm-Feld oder eine gezeichnete Zone - kann zusätzlich eine Textmarker-Farbe tragen: Gelb, Grün, Pink, Orange, Blau oder keine. Sie steht in der Zuordnungszeile und im Inspektor des Zonen-Editors neben den übrigen Eigenschaften des Feldes, gezeigt als die Farbe selbst mit ihrem Namen neben dem Farbfeld, sodass die Wahl nicht davon abhängt, Farben unterscheiden zu können.

Eine Markierung ist unabhängig davon, was das Feld ausdruckt: ein Feld kann sowohl einen Wert als auch eine Markierung tragen, nur eines von beiden, oder keines. Ein markiertes Feld ganz ohne Wert ist genau das Zeichen "hier von Hand ausfüllen" - die Markierung hängt nicht am Ausdruck, sodass eine leere Stelle zum handschriftlichen Ausfüllen zu markieren keinen erfundenen Platzhalter erfordert.

Sie wird als multiplizierte Fläche gezeichnet, so wie ein echter Textmarker über das bereits Gedruckte liegt, statt es zu überdecken - lesbarer Text bleibt darunter lesbar. Die Vorschau des Zonen-Editors zeichnet dieselbe Lasur, sodass das, was Sie beim Zuordnen sehen, dem später erzeugten PDF entspricht.

3.4.6. Datums- und Uhrzeitformate

Ein datums- oder uhrzeitwertiger Platzhalter kann nach einem Doppelpunkt ein Format tragen: {event.startDate:date} folgt der eigenen Einstellung der Organisation, {event.startDate:date(dd.MM.yyyy)} trägt stattdessen ein eigenes Muster - für das eine Formular, das eine bestimmte Form verlangt und sich nicht verändern darf, wenn die Einstellung später wechselt. time und datetime funktionieren ebenso für einen Zeit- oder einen kombinierten Datums- und Uhrzeitwert. Ein Format an einem Feld, das kein Datum oder keine Uhrzeit ist, wird als Warnung angezeigt statt abgelehnt.

Die eigenen Voreinstellungen der Organisation - was "der Einstellung folgen" bedeutet - liegen unter Dokumente → Einstellungen → Format: je ein Muster für einen Datums-, einen Uhrzeit- und einen kombinierten Datums-und-Uhrzeit-Wert. Das betrifft nur die gedruckte Seite. Was gespeichert, über die API übertragen oder in einen maschinenlesbaren Export geschrieben wird, bleibt unabhängig davon immer die kanonische ISO-8601-Form - ein gewähltes Format ist für eine Person, die ein gedrucktes Formular liest, nicht für einen Parser.

3.4.7. Erzeugen

Dokumente erzeugen fragt nach den Vorlagen, der Veranstaltung, ob deren Teilveranstaltungen mitzählen, und wer einbezogen wird - nach Teilnahmestatus, mit zugesagt als Voreinstellung, oder durch Ankreuzen einzelner Personen. Die Antwort ist ein PDF mit allen Dokumenten darin, nach Namen sortiert, fertig zum Ausdrucken. Nichts wird in die Dokumentenablage zurückgeschrieben: die Vorlage samt Daten ist der Nachweis, und die gedruckte Fassung lässt sich jederzeit erneut erzeugen.

Passt niemand zur Auswahl, sagt der Lauf das, statt eine leere Datei herauszugeben.

Expertenkonfiguration für die übrigen Module wird hier ergänzt, sobald sie fertig ist. Der Umfang pro Modul wird festgelegt, sobald das jeweilige Modul verfeinert wird.