Mitarbeiter — Kurs-Anmeldungen (Sub-Route)
Zweck
Sub-Route /employees/:id/course-enrollments zeigt alle Kurs-Anmeldungen des Mitarbeiters mit parentType = Employee. Sub-Sub-Route /employees/:id/course-enrollment-certificates listet die ausgestellten Zertifikate.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_Employee, Employee, FE_CourseEnrollment, CourseEnrollment | Liste sichtbar | — |
create | CourseEnrollment | Anmelden | APP_SPEAMCORE_CREATE_COURSE_ENROLLMENT |
view | Course | Kurs-Auswahl | APP_SPEAMCORE_VIEW_COURSE |
Schritt-für-Schritt-Anleitung
- Mitarbeiter (
/employees/:id) → Tab Kurs-Anmeldungen. - + Anmeldung wählt einen Kurs und legt eine
CourseEnrollmentmitparentType = Employee,parentId = :idan. - Sub-Sub-Tab Zertifikate (
/employees/:id/course-enrollment-certificates) zeigt die ausgestellten Zertifikate aus abgeschlossenen Kursen.

Anlege-Pattern (Code-Lookup-basiert)
Beim Klick auf den + Hinzufügen-Button erscheint kein Modal mit Eingabemaske, sondern ein Auswahl-Workflow (customAddButton-Pattern):
- Modal mit Suche im Stamm der zu verknüpfenden Entität (z. B. Rolle, Fahrzeug, Kurs).
- Anwender wählt einen oder mehrere Einträge.
- Pro Auswahl wird ein Assignment-Datensatz erzeugt, der die N:M-Verknüpfung Mitarbeiter ↔ Stamm hält — nicht der Stamm selbst.
- Klick auf eine Zeile führt zum Detail des Assignment (Pflege z. B. von Gültigkeitszeitraum, prozentuale Aufteilung).
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Mitarbeiter — Eltern-Modul.
- Kurs-Anmeldungen — globale Sicht.
- Kurse und Kurs-Zertifikate — Stamm.
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/course-enrollments?filter[parentType=Employee&parentId] | Liste | view CourseEnrollment |
POST | /api/course-enrollments | Anmelden | create CourseEnrollment |
Versionshinweise
- 2026-04-30: Initiale Veroeffentlichung.