feat(stammdaten): Mitarbeiter, Abteilungen und Geraete (#25)
This commit was merged in pull request #25.
This commit is contained in:
+58
-2
@@ -13,11 +13,12 @@ als Unterpunkte mit Aufgabe und Dauer.
|
||||
| #008 | M3 – Betriebsmodus und Kunden | 1 h 20 min |
|
||||
| #009 | M4 – Vorlagen-Versionierung im Service | 1 h 20 min |
|
||||
| #010 | M5 – Vorlagen-Editor | 2 h 10 min |
|
||||
| | **Summe** | **9 h** |
|
||||
| #011 | M6 – Mitarbeiter, Abteilungen, Geräte | 2 h 15 min |
|
||||
| | **Summe** | **11 h 15 min** |
|
||||
|
||||
| Meilenstein | Tatsächlich | Status |
|
||||
|---|---|---|
|
||||
| v0.1.0 | 9 h | in Arbeit |
|
||||
| v0.1.0 | 11 h 15 min | in Arbeit |
|
||||
|
||||
---
|
||||
|
||||
@@ -396,3 +397,58 @@ als Unterpunkte mit Aufgabe und Dauer.
|
||||
|
||||
- #011 Mitarbeiter, Abteilungen und Geräte: Listen mit Suche, Mitarbeiterseite mit Historie,
|
||||
Abteilungen mit Ziel-OU und Standardgruppen, Geräte mit CSV-Import.
|
||||
|
||||
---
|
||||
|
||||
## 2026-09-25 · Sitzung 7 · 10:30–12:55
|
||||
|
||||
**Issue:** #011 (M6)
|
||||
**Version:** 0.1.0
|
||||
|
||||
### Erledigt
|
||||
|
||||
- Mitarbeiter: Dienst mit Sperre für abgeglichene Stammdaten, Liste mit Suche über vier Kennungen,
|
||||
Personenseite mit Geräten, Vorgesetztem und Platz für die Laufhistorie
|
||||
- Abteilungen unter Admin: Ziel-OU, Standardgruppen, Mail-Domain, dazu die Liste der
|
||||
Abteilungsnamen, die bei Personen vorkommen, aber nicht gepflegt sind
|
||||
- Geräte samt CSV-Import (Sub-Agent): eigener Zerleger in `src/lib/csv.ts`, Tag-Code-Vergabe in
|
||||
einer Transaktion, Archivieren statt Löschen
|
||||
- Neues Recht `mitarbeiterBearbeiten`; die Seitenleiste führt Personen und Geräte unter einem
|
||||
Eintrag, im Modus Dienstleistung anders beschriftet
|
||||
- Unabhängiger Review: zwei Blocker, sieben weitere Befunde, alle abgearbeitet
|
||||
- **610 Tests** grün (vorher 601 vor dem Review), dazu 18 E2E-Abläufe
|
||||
|
||||
### Entscheidungen
|
||||
|
||||
- **Ein CSV-Wert reicht nicht über die Zeile hinaus.** Das Format erlaubt es, und `csvErzeugen`
|
||||
schreibt es auch so — beim **Lesen** einer fremden Datei ist es trotzdem die schlechtere Annahme:
|
||||
ein Umbruch in einem Hostnamen kommt nicht vor, ein vergessenes schließendes Anführungszeichen
|
||||
ständig. Mit der Grenze endet der Schaden an der Zeile, in der er beginnt; ohne sie verschluckt
|
||||
eine kaputte Zelle alle Folgezeilen, und der Import meldet dafür Erfolg.
|
||||
- **Eine abgeglichene Person ist vollständig gesperrt**, nicht nur teilweise. Alle Stammdaten
|
||||
kommen aus dem Verzeichnis, auch der Titel. Übrig bleibt genau ein Weg: aktivieren und
|
||||
deaktivieren — und der muss bleiben, weil das Offboarding nicht auf den nächsten Abgleich wartet.
|
||||
- **Löschen eines Geräts verlangt `verwaltung`.** Archivieren ist der Normalfall. Löschen ist nicht
|
||||
rücknehmbar und verbrennt den Tag-Code für immer — der gedruckte Aufkleber ist danach wertlos.
|
||||
- **Die Lesemodelle liefern den Kundennamen immer, die Seite entscheidet über die Anzeige.**
|
||||
Vorher entschied das eine Lesemodell nach `istEigeneOrganisation` und das andere gar nicht.
|
||||
- **Die Mitarbeitersuche ist ein eigenes Bauteil**, bevor sie zum zweiten Mal gebraucht wird: #013
|
||||
und #014 brauchen sie wieder, und dreimal abgeschrieben vergisst man den Umschalter „auch
|
||||
deaktivierte“ zweimal.
|
||||
|
||||
### Probleme
|
||||
|
||||
- **Der schwerste Fehler war wieder einer, der Erfolg meldet.** Der CSV-Import hat Zeilen
|
||||
verschluckt und „3 von 3 angelegt“ gesagt. Gefunden hat ihn der Review mit einer Datei, wie sie
|
||||
aus einem halb ausgefüllten Excel kommt — meine eigenen Tests prüften nur saubere Dateien und die
|
||||
eine Ausnahme, die ohnehin geworfen wurde.
|
||||
- **Zwei Funktionen im selben Modul widersprachen sich**: `abteilungsListe` schlüsselte nach Kunde
|
||||
und Name, `ungepflegteAbteilungen` nach Namen allein. Nebeneinander geschrieben, nicht
|
||||
nebeneinander gelesen.
|
||||
- **Vierter Meilenstein in Folge mit einem Kommentar, der eine Zusage macht, die der Code nicht
|
||||
hält.** Diesmal versprach er zwei verschiedene Meldungen, gerendert wurde eine.
|
||||
|
||||
### Nächster Schritt
|
||||
|
||||
- #012 Platzhalter, Namensregeln und Escaping: die reine Service-Schicht, aus der die fertigen
|
||||
PowerShell-Befehle entstehen — mit dichter Testabdeckung, denn hier darf nichts schiefgehen.
|
||||
|
||||
Reference in New Issue
Block a user