Zum Hauptinhalt springen

Kurs-Prüfungen (CourseExams)

Zweck

CourseExam ist eine Pruefungsvorlage mit zugehörigen Fragen und Antworten. Pro Prüfung wird über die Sub-Route /course-exams/:id/questions der Fragen-Pool gepflegt; pro Frage werden die möglichen Antworten in /course-exams/:id/questions/:questionId/answers angelegt — eine oder mehrere davon als korrekt markiert.

Eine Prüfung wird in einem Kurs als Modul eingebaut. Beim Anlegen einer Anmeldung durchlaeuft der Lernende die Prüfung und das System wertet die Antworten aus.

Voraussetzungen

- Berechtigung `view:CourseExam` und `create:CourseExam`. - Für Fragen: `view:CourseExamQuestion`/`create:CourseExamQuestion`. - Für Antworten: `view:CourseExamQuestionAnswer`/`create:CourseExamQuestionAnswer`.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_CourseExam, CourseExamListe/Detail aufrufbar
create/update/deleteCourseExamPflegenAPP_SPEAMCORE_CREATE/UPDATE/DELETE_COURSE_EXAM
view/create/update/deleteCourseExamQuestionFragen-Sub-ListeAPP_SPEAMCORE_VIEW/CREATE/UPDATE/DELETE_COURSE_EXAM_QUESTION
view/create/update/deleteCourseExamQuestionAnswerAntworten-Sub-ListeAPP_SPEAMCORE_VIEW/CREATE/UPDATE/DELETE_COURSE_EXAM_QUESTION_ANSWER

Schritt-für-Schritt-Anleitung

  1. Kurs-Prüfungen (/course-exams) → + Neu.
  2. name und description pflegen.
  3. Sub-Route Fragen → Frage anlegen mit Text und Frage-Typ (Single-Choice, Multiple-Choice, ...).
  4. Pro Frage Sub-Sub-Route Antworten → Antworten erfassen, mind. eine als korrekt markieren.
  5. Prüfung in einen Kurs als Modul einbauen.

Kursprüfungen-Liste mit Spalten Name und Beschreibung — Beispiel „Abschlussprüfung Arbeitssicherheit & DGUV" mit Mindestpunktzahl und Themen, Button „+ Kursprüfung hinzufügen" (Test-Daten).

Eine Kursprüfung (`CourseExam`) hat als Stammdaten nur **Name** und **Beschreibung** — **kein** eigenes Feld für die Bestehensgrenze. Die im Beispiel sichtbare „Mindestpunktzahl 80 %" ist also Teil des **Beschreibungs-Freitexts**, kein strukturierter Wert. Auch die einzelnen Fragen tragen keine Punkte-Gewichtung. Wenn Sie eine verbindliche Bestehensgrenze brauchen, formulieren Sie sie klar in der Beschreibung.

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

Felder und Eingaben

FeldnamePflichtDatentypWirkung beim AusfuellenVoraussetzung
nameneinStringAnzeigename in Liste und Modul-Auswahl.
descriptionneinTEXTErlaeuterung der Prüfung.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/course-examsListeview CourseExam
POST/api/course-examsAnlegencreate CourseExam
GET/api/course-exams/:idDetailview CourseExam
PATCH/api/course-exams/:idÄndernupdate CourseExam
DELETE/api/course-exams/:idSoft-Deletedelete CourseExam
GET/api/course-exam-questions?filter[courseExamId]Fragen-Sub-Listeview CourseExamQuestion
GET/api/course-exam-question-answers?filter[courseExamQuestionId]Antworten-Sub-Listeview CourseExamQuestionAnswer

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung.