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

43 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# #020 Vorgesetzter auch für von Hand angelegte Personen
**Status:** offen
**Im Tracker:** [#31](https://git.wilde-server.de/florian.wilde/Laufzettel/issues/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](017-seed-sieben-vorlagen.md) 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