Files
Laufzettel/docs/issues/020-vorgesetzter-manuell.md
T
Florian WildeandClaude Opus 5 5c81a62cfd
Prüfung / pruefung (push) Canceled after 0s
Prüfung / pruefung (pull_request) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
Prüfung / e2e (pull_request) Canceled after 0s
feat(seed): sieben Vorlagen, Beispielbestand und Demo-Kunden
Die sieben Ablaeufe des Hauses liegen nach dem Seed als veroeffentlichte
Version 1 bereit: 36 Abschnitte, 155 Schritte, 28 Variablen, jeder
Schritt mit Hilfetext. Sie stehen als JSON im Austauschformat unter
prisma/seed-daten/vorlagen/ und werden beim Einrichten gegen dasselbe
Schema geprueft wie ein Import.

Der Seed richtet ein, er raeumt nicht auf: jede Zeile hat einen
sprechenden Schluessel, und was es schon gibt, bleibt unberuehrt. Erst
Entwurf, dann veroeffentlichen - die Trigger aus #010 lassen keinen
anderen Weg zu. Im Modus DIENSTLEISTUNG haengt der Beispielbestand an
der Musterfirma, LZ-7K3F9Q fuehrt also auf MUS-PC-001.

Dazu zwei Zusagen eingeloest, die niemand deckte: {{ou_gesperrt}} kommt
jetzt wirklich aus den Einstellungen, und Titel und Hilfetext eines
Laufs bekommen dasselbe generierte Passwort wie der Befehl daneben -
vorher stand im Befehl A und im Hilfetext B.

Closes #17

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-26 05:26:04 +02:00

2.1 KiB
Raw Blame History

#020 Vorgesetzter auch für von Hand angelegte Personen

Status: offen Im Tracker: #31 — die Zählung dort schließt Pull Requests ein und läuft deshalb auseinander Meilenstein: v0.2.0 Labels: phase-2, backend Geschätzt: 3 h Tatsächlich: –

Ziel

Eine Person, die nicht aus dem Verzeichnis kommt, kann heute keinen Vorgesetzten haben. Das fiel in #017 auf: der Auftrag verlangt für den Beispielbestand „Maria Huber, Vorgesetzte Petra Klein“, und genau diese Zuordnung lässt sich nirgends speichern.

Woran es liegt

Mitarbeiter.vorgesetzterExterneId trägt die externeId des Vorgesetzten, und die ist nur innerhalb einer Verzeichnisquelle eindeutig. Beide Lesepfade steigen deshalb aus, wenn die Person keine Quelle hat:

  • vorgesetzterVon() in src/server/queries/mitarbeiter.ts
  • vorgesetztenLesen() in src/server/services/platzhalter.ts

Das ist für Verzeichnis-Personen richtig. Für eine von Hand angelegte Person gibt es schlicht kein Feld — {{vorgesetzter_sam}} bleibt dort immer leer.

Aufgaben

  • Entscheiden: eigene Selbstbeziehung vorgesetzterId (sauber, aber zwei Wege zur selben Auskunft) oder vorgesetzterExterneId auch im Bereich „ohne Quelle“ auflösen (quelleId IS NULL), mit stabilen Kennungen für manuelle Personen
  • Beide Lesepfade und {{vorgesetzter}} / {{vorgesetzter_sam}} entsprechend erweitern
  • Oberfläche: Vorgesetzten auf der Mitarbeiterseite setzen und entfernen
  • Der Abgleich darf die Zuordnung nicht überschreiben, wenn das Verzeichnis keinen manager liefert — und keine Schleife zulassen (A ist Vorgesetzter von B ist Vorgesetzter von A)
  • Seed: Petra Klein als Vorgesetzte von Maria Huber eintragen

Akzeptanzkriterien

  • Test: eine von Hand angelegte Person bekommt einen Vorgesetzten, {{vorgesetzter_sam}} löst auf
  • Test: die Zuordnung gilt nur innerhalb desselben Kunden
  • Test: ein Abgleich ohne manager löscht eine von Hand gesetzte Zuordnung nicht