Fördergruppen nach Kompetenzstufen¶
Werkzeug für die Bildung von Förder- und Forder-Gruppen je Kompetenzstufe: nach Auswahl einer Domäne (z.B. „Sprechen und Zuhören") gruppieren dynamisch viele Bucket-Karten die Schüler:innen entlang ihrer erreichten Stufe (z.B. I, II, III, IV, V) und verlinken zu passendem Fördermaterial.
Genutzt von: Klassenleitung (Bereich „Weiterarbeit")
Verwandt: Fördergruppen nach Teilkompetenzen -- feinkörnigere Sicht auf Lösungsquoten je Teilkompetenz; im Page-Header über den Toggle „Teilkompetenzen ↔ Kompetenzstufen" erreichbar.
Hintergrund-Konzept: docs/weiterarbeit_konzept.md -- abgestimmte Entscheidungen zu Buckets, Stufen-Reihenfolge und Persistenz (Phase F).
Screenshot¶
Bucket-Karten je vorhandener Kompetenzstufe in der gewählten Domäne, alle in einer Zeile ab Tablet-Breite:

API-Aufruf¶
Dieses Element benötigt einen API-Aufruf:
In der Page wird die Methode des generierten Service so genutzt:
Pro Domäne liefert die Antwort ein Array students[] mit der erreichten Kompetenzstufe je Schüler:in. Daraus baut das Element die Bucket-Karten für die ausgewählte Domäne.
Beispiel-Response¶
[
{
"id": "43",
"name": "Sprechen und Zuhören",
"students": [
{
"id": "milch.sand.47",
"name": "milch.sand.47",
"competenceLevel": {
"id": "241",
"name": "Mindeststandard noch nicht erreicht (Ib)",
"nameShort": "Ib"
}
},
{
"id": "hand.brief.96",
"name": "hand.brief.96",
"competenceLevel": {
"id": "245",
"name": "Optimalstandard",
"nameShort": "V"
}
}
]
},
{
"id": "12973",
"name": "Sprache und Sprachgebrauch untersuchen",
"students": [ ... ]
}
]
Relevante Felder:
name(oberste Ebene) -- Domäne (z.B. „Sprechen und Zuhören")students[].id/students[].name-- Schülercodestudents[].competenceLevel.nameShort-- Stufenkürzel (z.B. „Ib", „II", „V")students[].competenceLevel.name-- Klartext-Bezeichnung der Stufe
Aggregations-Niveau ist die Domäne, nicht das Fach. Das entspricht der API-Form: SuS-Zuordnungen liegen nur auf Domänen-Ebene vor.
Bestandteile der Komponente¶
Über einem Domänen-Dropdown werden für die gewählte Domäne dynamisch viele Bucket-Karten erzeugt -- eine Karte pro Stufe, die in dieser Domäne tatsächlich vorkommt (typischerweise 3 bis 5). Reihenfolge: schwach links → stark rechts.
Jede Karte zeigt:
- die Stufe als Kopfzeile (Kürzel + Klartext-Name),
- einen farbigen Akzentbalken in der Stufenfarbe (zentral aus dem Theme, siehe unten),
- die zugeordneten Schülercodes,
- die Anzahl als Badge,
- einen Button „Fördermaterial öffnen" (Linkziel aus der Konfig) -- oder den Hinweis „Noch kein Fördermaterial verlinkt", wenn kein Link gepflegt ist.
Layout: Auf Tablet, Laptop und Desktop (ab 768 px Breite) werden alle Karten gleichmäßig in einer Zeile verteilt -- das Stufenprofil der Domäne ist auf einen Blick erkennbar. Auf schmaleren Geräten (Handy) stapeln sich die Karten untereinander.
Anders als bei der Teilkompetenz-Sicht gibt es kein manuelles Verschieben: Stufen sind objektiver Diagnostik-Output, eine Override-Funktion würde der Sache widersprechen.
Stufen-Reihenfolge¶
Die Reihenfolge der Stufen schwach→stark wird in einer JSON-Datei im Repo gepflegt:
Schema: Fach → Array von Stufen-Definitionen
{
"Deutsch": [
{ "nameShort": "Ib", "name": "Mindeststandard noch nicht erreicht (Ib)" },
{ "nameShort": "Ia", "name": "Mindeststandard noch nicht erreicht (Ia)" },
{ "nameShort": "I", "name": "Mindeststandard noch nicht erreicht" },
{ "nameShort": "II", "name": "Mindeststandard" },
{ "nameShort": "III", "name": "Regelstandard" },
{ "nameShort": "IV", "name": "Regelstandard plus" },
{ "nameShort": "V", "name": "Optimalstandard" }
]
}
Warum eine lokale Konfig? Die API liefert zu Stufen heute nur nameShort und name, aber keine Sortierinformation. nameShort-Strings (römische Zahlen, GER-Stufen, gemischte Schemata pro Fach) lassen sich nicht zuverlässig sortieren. Eine Spec-Erweiterung um level: number ist als API-Vorschlag S8 in docs/api_proposals.md vorgemerkt -- sobald sie ausgeliefert ist, kann die Konfig ganz entfallen.
Stufen, die in den Daten vorkommen, aber nicht in der Konfig stehen, landen am Ende der Reihenfolge mit einer neutralen Theme-Farbe und einem Fragezeichen-Hinweis.
Farben¶
Die Stufen-Farben werden nicht in dieser Konfigdatei gepflegt, sondern stammen aus dem zentralen Theme src/styles/_theme.scss (Map $competence-colors). Die Komponente nutzt die bestehende Helper-Funktion getCompetenceLevelColor(nameShort) aus src/app/shared/models/competence.model.ts. Damit sind die Stufen-Farben in allen Berichtselementen identisch -- Verteilung (Übersichtsseite), Vergleich, Schüler:innen-Tabelle und diese Stufen-Buckets ziehen aus derselben Quelle.
Mapping nameShort → Theme-Klasse:
| nameShort | Theme-Klasse | Bedeutung |
|---|---|---|
Ia, Ib, I |
competence-level-1 |
Unter Mindeststandard |
II |
competence-level-2 |
Mindeststandard |
III |
competence-level-3 |
Regelstandard |
IV |
competence-level-4 |
Regelstandard plus |
V |
competence-level-5 |
Optimalstandard |
Soll eine Farbe geändert werden, geschieht das im Theme -- nicht hier.
Fördermaterial-Linkkonfiguration¶
Die Linkziele für die „Fördermaterial öffnen"-Buttons werden in derselben JSON-Datei wie die Teilkompetenz-Links gepflegt -- aber unter einem eigenen Schlüssel kompetenzstufen:
Schema: kompetenzstufen → Fach → Domäne → Stufenkürzel → URL
{
"kompetenzstufen": {
"Deutsch": {
"Sprechen und Zuhören": {
"Ib": "https://material.example.de/d/sprechen-zuhoeren/Ib",
"II": "https://material.example.de/d/sprechen-zuhoeren/II",
"III": "https://material.example.de/d/sprechen-zuhoeren/III",
"IV": "https://material.example.de/d/sprechen-zuhoeren/IV",
"V": "https://material.example.de/d/sprechen-zuhoeren/V"
}
}
}
}
Pflege: Berichtspfleger:innen ergänzen oder ändern Linkziele per Pull Request. Fehlt ein Eintrag, zeigt die Bucket-Karte den Hinweis „Noch kein Fördermaterial verlinkt" und der Button bleibt aus.
Aktuell sind alle URLs Dummies auf https://vera.edoop.de/... -- bei Klick öffnet sich die Materialsammlung in einem neuen Tab. Vor dem produktiven Einsatz die echten URL-Strukturen einsetzen.
Übernahme¶
Für dieses Element benötigen Sie:
- Hauptkomponente:
FoerdergruppenStufenComponent(Selektor:app-foerdergruppen-stufen) - Services:
CompetenceLevelOrderService(lädt/assets/competence-level-order.json)FoerdermaterialService(lädt/assets/foerdermaterial-links.json, MethodegetLinkByLevel(subject, domain, levelShort))
- Inputs:
studentLevels-- Response von/groups/{id}/students/competence-levelssubject-- Fach-Name (z.B. „Deutsch") -- muss zu den Schlüsseln in der Reihenfolgen- und Linkkonfig passen
Die Komponente ist self-contained: Heatmap und Bucket-Karten teilen sich den State; Spaltenklicks und Dropdown-Auswahl bleiben synchron.
Einbindung im Bereich „Weiterarbeit"¶
Die Stufen-Sicht ist die zweite, gleichberechtigte Sicht im Bereich „Weiterarbeit". Der Page-Container FurtherWork (src/app/class-teacher/further-work/) schaltet über einen Toggle im Page-Header zwischen beiden Sichten:
| Toggle-Wert | Sicht | URL-Query |
|---|---|---|
| Teilkompetenzen | Fördergruppen (Lösungsquoten je Teilkompetenz, vier feste Buckets) | (kein Param oder ?view=teilkompetenzen) |
| Kompetenzstufen | Diese Seite (Stufen je Domäne, dynamisch viele Buckets) | ?view=stufen |
Die Auswahl persistiert in der URL-Query (?view=stufen) und ist damit bookmark- und refresh-fest, ohne localStorage zu benötigen.
Wann einsetzen?¶
Die Stufen-Sicht eignet sich, wenn
- für die Stufen einer Domäne bereits gepflegtes Fördermaterial vorliegt (typischer Fall in vielen Bundesländern -- Bündelung ist durch die Diagnostik gegeben),
- die Lehrkraft einen groben Überblick über das Stufenprofil ihrer Lerngruppe braucht, bevor sie in die Detail-Diagnostik einzelner Teilkompetenzen einsteigt,
- ein objektiver Schnitt gewünscht ist (keine Override-Funktion, da Stufen Diagnostik-Outputs sind).
Für die feinkörnige Sicht auf einzelne Teilkompetenzen mit Lösungsquoten und manuellen Anpassungen ist Fördergruppen nach Teilkompetenzen die richtige Wahl. Beide Sichten sind im selben Page-Container vereint -- die Lehrkraft wechselt per Toggle.