Plan B verfügt über ein paar Endpunkte, um Zugriff für andere Apps zu ermöglichen, z.B. MacStupas5.
Die API ist in weiterer Entwicklung. Ziel ist es, für jedes Datenmodell einen eigenen Endpunkt zu haben, mit den üblichen CRUD Operationen (POST, GET, PATCH, DELETE).
Wichtig: Um die Abwärtskompabilität zu wahren, werden die neuen Endpunkte unter /v3 eingeführt. Die alten Endpunkte bleiben unter /v2 bestehen.
Da einige Endpunkte in beiden Versionen existieren werden sind diese ggf. unter /v2 und unter /v3 erreichbar.
Dabei müssen sich die Endpunkte in /v3 nicht unbedingt an die Struktur und das Verhalten der Endpunkte in /v2 halten.
Dies wird beim jeweiligen Endpunkt dokumentiert.
Geplant ist es, die /v2 Endpunkte in den nächsten Versionen zu entfernen.
Als Datenschemata für die einzelnen Entitäten werden unterschiedliche Sichten verwendet:
kuerzel, vorname, nachname... bei Lehrern. Verknüpfte oder eingebettete Objekte werden per _id referenziert (z.B. kursliste.lehrer._id)_id und die _groupId (ID der Schule).kursliste.lehrer nur die _id und das kuerzel zurückgegeben. Die vollständigen Daten können über einen eigenen GET Endpunkt abgefragt werden.GET Anfragen können mit Query Parametern gefiltert werden. So können z.B. alle Lehrer einer Klasse abgefragt werden oder alle Kurse eines Lehrers. Wir orientieren uns hierbei an den Empfehlungen von JSON:API.
Als Optionen können die Resultate paginiert werden. Hierbei wird die Anzahl (limit) der zurückgegebenen Datensätze und der Offset (skip) angegeben.
Die serverseitige Sortierung der Ergebnisse erfolgt nach dem Standardverhalten von MongoDB durch Angabe eines Sortierfeldes sort und der Sortierrichtung.
Das default limit liegt bei allen GET Endpunkten bei 1000 Datensätzen. Der Offset ist standardmäßig 0.
Beispiel: /api/v3/schueler?options[limit]=100&options[skip]=200&options[sort][vorname]=1&options[sort][geburtsdatum]=-1
Einige POST und PATCH Anfragen erfordern ggf. aufwändigere Verarbeitungsschritte. Diese werden asynchron im Hintergrund bearbeitet, indem sie in eine Jobqueue ausgelagert werden. Beispielsweise können bei der Erstellung einer Schüler-Absenz optional auch die Fehlstunden generiert werden. Die Generierung von Fehlstunden für Schüler einige Zeit in Anspruch nehmen.
In diesem Fall wird ein Job erstellt, der den Status der Verarbeitung enthält. Über einen eigenen Endpunkt können die Details zu einem Job abgefragt werden.
Diese Anfragen enden mit dem Status 202. Im Response Header unter Location die relative URL übermittelt, unter der der Job abgefragt werden kann.
Hier ist ggf. der Fortschritt und auch das Ergebnis des Jobs enthalten.
Das Changelog der API ist im OpenAPI Dokument (s. Download) enthalten. Hier werden die Änderungen an der API dokumentiert.
Requests bei Plan B müssen authentifiziert werden. Dafür wird OAuth2 (verbunden mit einem Account) und ein API Key (Verbunden mit einer App oder einem Service) verwendet.
Gibt den aktuell angemeldeten Nutzer zurück. Der Nutzer muss über OAuth2 authentifiziert sein. Die Antwort enthält die Nutzer-ID, den Benutzernamen, das Lehrerkuerzel, die Rollen und die Gruppen-ID des Nutzers.
{- "status": "success",
- "data": {
- "user": {
- "_id": "string",
- "username": "string",
- "profile": {
- "lehrerkuerzel": "string"
}, - "roles": [
- "string"
], - "_groupId": "string"
}
}
}Mit diesem Endpunkt können Sie einen OAuth Token erhalten, um auf die Plan B API zuzugreifen. Senden Sie eine Anfrage mit den erforderlichen Parametern, um einen Token zu erhalten.
Für die Authentifizierung wird der client_id und client_secret benötigt. Diese Daten erhalten Sie von Plan B.
Die initiale Autorisierung erfolgt über den oauth2 Dialog https://{server}/oauth/dialog?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}.
Dort wird der Nutzer aufgefordert, die Berechtigungen zu erteilen.
Nach erfolgreicher Autorisierung wird der Autorisierungscode als Parameter code auf die von Ihnen angegebene redirect_uri weitergeleitet.
Diesen Code können Sie dann verwenden, um den Token am Endpunkt /api/v3/oauth/token zu erhalten.
Die allgemeine Spezifikation für OAuth2 finden Sie unter OAuth 2.0 oder RFC 6749.
Hinweise:
Authorization mit dem Wert Bearer <token> übermittelt werden| grant_type required | string Enum: "authorization_code" "refresh_token" "urn:ietf:params:oauth:grant-type:device_code" |
| client_id required | string Die Client ID, die Sie von Plan B erhalten haben. |
| client_secret required | string Das Client Secret, das Sie von Plan B erhalten haben. |
| device_code | string Der Device Code, der bei der Autorisierung eines Device Flows zurückgegeben wurde. Wenn der |
| refresh_token | string Der Refresh Token, der bei der Autorisierung zurückgegeben wurde. Wenn der |
| code | string Der Autorisierungscode, der bei der Autorisierung zurückgegeben wurde. Wenn der |
| scope | string Enum: "admin" "user" |
{- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "token_type": "bearer",
- "expires_in": 3600,
- "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}Mit einem Benutzernamen und einem Passwort kann man hier einen bearerToken erhalten, um künftige Requests zu authorisieren.
Hinweis: Die Bearer Token Authentifizierung wird mittelfristig durch oAuth2 ersetzt.
| username required | string |
| password required | string |
| token | string Wenn ein bereits vorhandener Bearer Token mitgesendet wird, wird die Gültigkeit verlängert |
{- "username": "admin@TESTSChuLE",
- "password": "mysuperpass",
- "token": "bSaIHN3yQYeNHLUbPKT8tHxO0nopbZy3lYZ6A69d-Sc"
}{- "status": "success",
- "data": {
- "bearerToken": {
- "token": "Qf7tRmczgFyJAexEORp6qltDEqWQbMJdx4Pw7NHxi0T",
- "expires": "2023-06-11T15:24:53.347Z"
}
}
}Löscht den mitgesendeten Bearer Token. Kann auch derjenige sein, der im Header mitgesendet wird.
Hinweis: Die Bearer Token Authentifizierung wird mittelfristig durch oAuth2 ersetzt.
| token required | string |
{- "token": "bSaIHN3yQYeNHLUbPKT8tHxO0nopbZy3lYZ6A69d-Sc"
}{- "status": "success",
- "data": null
}Liefert alle Schulen, die derzeit bei Plan B angemeldet sind.
{- "status": "success",
- "data": {
- "schulen": [
- {
- "_id": "qzWFcnTF2JzdPckhw",
- "kuerzel": "mc1x2315y1",
- "kurzBezeichnung": "DEMO",
- "backend": "DEMO",
- "bezeichnung": "Demo Schule"
}
]
}
}Liefert Details zur Schule mit der angegebenen SchulId.
| schulId required | string SchulId |
{- "status": "success",
- "data": {
- "_id": "qzWFcnTF2JzdPckhw",
- "kuerzel": "DEMO",
- "kurzBezeichnung": "DEMO",
- "backend": "DEMO",
- "bezeichnung": "Demo Schule",
}
}Liefert alle Fehleinträge für das im Parameter angegebene Datum. Dies können auch Einträge sein, die über das Datum hinaus gehen.
Nur für Admins verfügbar.
| datum required | string <date> Datum |
{- "status": "success",
- "data": {
- "absenzen": [
- {
- "_id": "qzWFcnTF2JzdPckhw",
- "type": "VLehrerkuerzel",
- "fehlend": {
- "_id": "qzWFcnTF2JzdPckhw",
- "kuerzel": "Wahl"
}, - "anfang": "2023-02-14T23:00:00.000Z",
- "anfangStunde": {
- "_id": "qzWFcnTF2JzdPckhw",
- "reihenfolge": 12,
- "nummer": 3
}, - "ende": "2023-02-14T23:00:00.000Z",
- "endeStunde": {
- "_id": "qzWFcnTF2JzdPckhw",
- "reihenfolge": 12,
- "nummer": 3
}, - "_groupId": "0o1203o01o230o0o123",
- "_origin": "userinput"
}
]
}
}Importiert Absenzen. Dabei sind mehrere Typen von Absenzen möglich. Es werden beim Import keine Vertretungen angelegt. Es werden nur die Absenzen angelegt.
Nur für Admins verfügbar.
Array of objects (LehrerAbsenzEingabe) | |
Array of objects (KlassenAbsenzEingabe) | |
Array of objects (RaumAbsenzEingabe) | |
Array of objects (SchuelerAbsenzEingabe) |
{- "lehrer": [
- {
- "anfang": "2023-02-14",
- "anfangStunde": {
- "reihenfolge": 5
}, - "ende": "2023-02-14",
- "endeStunde": {
- "reihenfolge": 5
}, - "bemerkung": "Klassenfahrt",
- "fehlend": {
- "kuerzel": "Wahl"
}, - "grund": "dienstlich"
}
], - "klassen": [
- {
- "anfang": "2023-02-14",
- "anfangStunde": {
- "reihenfolge": 5
}, - "ende": "2023-02-14",
- "endeStunde": {
- "reihenfolge": 5
}, - "bemerkung": "Klassenfahrt",
- "fehlend": {
- "kuerzel": "6a"
}, - "grund": "Schulveranstaltung"
}
], - "raeume": [
- {
- "anfang": "2023-02-14",
- "anfangStunde": {
- "reihenfolge": 5
}, - "ende": "2023-02-14",
- "endeStunde": {
- "reihenfolge": 5
}, - "bemerkung": "Klassenfahrt",
- "fehlend": {
- "kuerzel": "R413"
}, - "grund": "gesperrt"
}
], - "schueler": [
- {
- "anfang": "2023-02-14",
- "anfangStunde": {
- "reihenfolge": 5
}, - "ende": "2023-02-14",
- "endeStunde": {
- "reihenfolge": 5
}, - "bemerkung": "Klassenfahrt",
- "fehlend": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24T14:15:22Z",
- "klasse": "6a"
}, - "grund": "beurlaubt"
}
]
}{- "status": "success",
- "data": null
}Liefert alle Vertretungen, die in Plan B eingetragen sind und die im Zeitraum liegen. Nur für Admins verfügbar.
required | object |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "vertretungen": [
- {
- "datum": "2023-02-14",
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "lbem": "Entfall",
- "sbem": "Entfall",
- "keineMehrarbeit": false,
- "typ": "entfall",
- "setzung": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}
}, - "grund": "Klassenabsenz",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Trägt Vertretungen ein und sendet Benachrichtigungen an betroffene Schüler und Lehrer.
Nur für Admins verfügbar.
Der Nachrichtenversand erfolgt über den Messaging Service von Plan B. Dieser Service ist unabhängig von der API und wird über eine eigene Infrastruktur betrieben. Der Nachrichtenversand erfolgt asynchron und kann einige Zeit in Anspruch nehmen. User werden über jede Änderung oder jede neue Vertretung informiert. Der Push-Versand arbeitet "debounced" je Schule mit einem Timeout von 5000ms. Werden also mehrere Nachrichten innerhalb von 5 Sekunden versendet, startet der Push Versand erst, wenn der Timeout abgelaufen ist. Somit ist es möglich, mehrere Nachrichten in einer Push Mitteilung zusammenzufassen, um die User nicht mit zu vielen Nachrichten zu überfluten.
t=0s: Vertretung 1 eingetragen, User 1 und User 2 betroffen => Nachricht innerhalb Mitteilungszentrale von Plan B an User 1, z.B. "Du hast Vertretung in der 5. Stunde"t=1s: Vertretung 2 eingetragen, User 1 und User 3 betroffen => Nachricht innerhalb Mitteilungszentrale von Plan B an User 1 und User 3, z.B. "Du hast Vertretung in der 3. Stunde"t=2s: Vertretung 3 eingetragen, User 1 und User 4 betroffen => Nachricht innerhalb Mitteilungszentrale von Plan B an User 1 und User 4, z.B. "Die 5. Stunde fällt aus"t=7s: Push Versand an User 1 "Du hast 3 neue Nachrichten", Push Versand mit Details an User 3 ("Du hast Vertretung in der 3. Stunde") und User 4 ("Die 5. Stunde fällt aus").| benachrichtigen | boolean Wenn |
| datum required | string <date> |
required | object (ID) ID eines Dokuments in der Datenbank. |
| lbem | string Lehrer Bemerkung |
| sbem | string Schüler Bemerkung |
| keineMehrarbeit | boolean Wenn true, wird keine Mehrarbeit für Lehrer eingetragen. |
| typ required | string Value: "entfall" |
required | object (ID) ID eines Dokuments in der Datenbank. |
| grund required | string Enum: "Klassenabsenz" "Lehrerabsenz" |
[ ]{- "status": "success",
- "data": null
}Liefert Details zu einer Vertretung. Nur für Admins verfügbar.
| id required | string Vertretungs ID |
{- "status": "success",
- "data": {
- "datum": "2023-02-14",
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "lbem": "Entfall",
- "sbem": "Entfall",
- "keineMehrarbeit": false,
- "typ": "entfall",
- "setzung": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}
}, - "grund": "Klassenabsenz",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert eine Vertretung.
Nur für Admins verfügbar.
| id required | string Vertretung ID |
| benachrichtigen | boolean Wenn Zu weiteren Hinweisen zum Mitteilungsversand siehe POST Endpunkt. |
| datum | string <date> |
object (ID) ID eines Dokuments in der Datenbank. | |
| lbem | string Lehrer Bemerkung |
| sbem | string Schüler Bemerkung |
| keineMehrarbeit | boolean Wenn true, wird keine Mehrarbeit für Lehrer eingetragen. |
| typ | string Value: "entfall" |
object (ID) ID eines Dokuments in der Datenbank. | |
| grund | string Enum: "Klassenabsenz" "Lehrerabsenz" |
{- "datum": "2023-02-14",
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "lbem": "Entfall",
- "sbem": "Entfall",
- "keineMehrarbeit": false,
- "typ": "entfall",
- "setzung": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "grund": "Klassenabsenz"
}{- "status": "success",
- "data": null
}Liefert alle Vertretungen für das im Parameter angegebene Datum. Beinhaltet auch die Stundensetzungen. Nur für Admins verfügbar.
| datum required | string <date> Datum |
{- "status": "success",
- "data": {
- "vertretungen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "type": "VEVA",
- "datum": "2019-08-24T14:15:22Z",
- "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}, - "vstundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}, - "vlehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "olehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "vraum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "vfach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "aufsicht": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "_splanId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "ort": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "bezeichnung": "Pausenhof 1"
}, - "zeit": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}, - "lbem": "string",
- "sbem": "string",
- "_origin": "userinput",
- "_veintrag": {
- "setzungsID": "string"
}
}
]
}
}Läuft derzeit ein Importvorgang, so kann über diesen Endpunkt der Status abgerufen werden. Nur für Admins verfügbar.
{- "status": "success",
- "data": {
- "importstatus": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "status": "Lade Vertretungseintrag 37 von 49 für Di., 21.3.23 (Importauftrag von Wahl@SGS)",
- "steps": 50,
- "current": 37,
- "type": "working",
- "waiting": 3,
- "log": [
- "string"
]
}
}
}Importiert die gesamten Vertretungsplan-Infos aus XML Daten.
Nur für Admins verfügbar.
| xmlData required | string XML Daten, kodiert als Base64, um Probleme mit Sonderzeichen zu umgehen. |
| notify | boolean Push-Nachrichten zu Planänderungen werden nur verschickt, wenn der Wert true ist. |
{- "xmlData": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHZlcnRyZXR1bmdzcGxhbj4NCjx2UGxhbkZ1ZXJUYWc+DQo8ZGF0dW0+DQoyMDIzMDMwODsNCjwvZGF0dW0+DQo8dGFnPg0KMw0KPC90YWc+DQo8YmVtZXJrdW5nPg0KPC9iZW1lcmt1bmc+DQo8YWxsZVZlcnRyZXR1bmdlbj4NCjx2ZXJ0cmV0dW5nPg0KPHNldHp1bmdzSUQ+DQpHN1puODFxVjFCRTBVazAwNw0KPC9zZXR6dW5nc0lEPg0KPHN0dW5kZT4NCjMNCjwvc3R1bmRlPg0KPG9yaWdpbmFsPg0KPGxlaHJlcj4NCjxrdWVyemVsPg0KQmxhDQo8L2t1ZXJ6ZWw+DQo8aW5mbz4NCkJsYXNlDQo8L2luZm8+DQo8L2xlaHJlcj4NCjxmYWNoPg0KPGt1ZXJ6ZWw+DQptDQo8L2t1ZXJ6ZWw+DQo8aW5mbz4NCg0KPC9pbmZvPg0KPC9mYWNoPg0KPHJhdW0+DQo8a3VlcnplbD4NClMgMTENCjwva3VlcnplbD4NCjxpbmZvPg0KDQo8L2luZm8+DQo8L3JhdW0+DQo8YmV0cm9mZmVuZUtsYXNzZW4+DQo8a2xhc3NlPg0KPGt1ZXJ6ZWw+DQpRMQ0KPC9rdWVyemVsPg0KPGluZm8+DQoNCjwvaW5mbz4NCjwva2xhc3NlPg0KPC9iZXRyb2ZmZW5lS2xhc3Nlbj4NCjxrb3BwbHVuZz4NCjxrdWVyemVsPg0KMTJMMg0KPC9rdWVyemVsPg0KPGluZm8+DQoNCjwvaW5mbz4NCjwva29wcGx1bmc+DQo8L29yaWdpbmFsPg0KPHZlcnRyZXRlbmQ+DQo8bGVocmVyPg0KPGt1ZXJ6ZWw+DQpDbw0KPC9rdWVyemVsPg0KPGluZm8+DQpDb2duYWMNCjwvaW5mbz4NCjwvbGVocmVyPg0KPGZhY2g+DQo8a3VlcnplbD4NCm0NCjwva3VlcnplbD4NCjxpbmZvPg0KDQo8L2luZm8+DQo8L2ZhY2g+DQo8cmF1bT4NCjxrdWVyemVsPg0KUGguRA0KPC9rdWVyemVsPg0KPGluZm8+DQpQaHlzaWsgRGVtbw0KPC9pbmZvPg0KPC9yYXVtPg0KPC92ZXJ0cmV0ZW5kPg0KPGxlaHJlckJlbWVya3VuZz4NCg0KPC9sZWhyZXJCZW1lcmt1bmc+DQo8a2xhc3NlbkJlbWVya3VuZz4NCg0KPC9rbGFzc2VuQmVtZXJrdW5nPg0KPC92ZXJ0cmV0dW5nPg0KPC9hbGxlVmVydHJldHVuZ2VuPg0KPGFsbGVGZWhsbGVocmVyPg0KPGZlaGxsZWhyZXI+DQo8bGVocmVyPg0KPGt1ZXJ6ZWw+DQpCbGENCjwva3VlcnplbD4NCjxpbmZvPg0KQmxhc2UNCjwvaW5mbz4NCjwvbGVocmVyPg0KPGdydW5kPg0KLQ0KPC9ncnVuZD4NCjxmZWhsemVpdGVuPg0KPHN0dW5kZT4NCjMNCjwvc3R1bmRlPg0KPC9mZWhsemVpdGVuPg0KPC9mZWhsbGVocmVyPg0KPC9hbGxlRmVobGxlaHJlcj4NCjxhbGxlRmVobGtsYXNzZW4+DQo8L2FsbGVGZWhsa2xhc3Nlbj4NCjxhbGxlRmVobHJhZXVtZT4NCjwvYWxsZUZlaGxyYWV1bWU+DQo8YWxsZUZlaGx6dXNhdHprcmFlZnRlPg0KPC9hbGxlRmVobHp1c2F0emtyYWVmdGU+DQo8L3ZQbGFuRnVlclRhZz4NCjwvdmVydHJldHVuZ3NwbGFuPg0K",
- "notify": false
}{- "status": "success",
- "data": {
- "jobId": "3"
}
}Liefert alle Stundenpläne, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Nur für Lehrer verfügbar.
| von required | string <date> Datum |
| bis required | string <date> Datum |
{- "status": "success",
- "data": {
- "stundenplaene": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
]
}
}Läuft derzeit ein Importvorgang, so kann über diesen Endpunkt der Status abgerufen werden. Nur für Admins verfügbar.
{- "status": "success",
- "data": {
- "importstatus": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "status": "Lade Vertretungseintrag 37 von 49 für Di., 21.3.23 (Importauftrag von Wahl@SGS)",
- "steps": 50,
- "current": 37,
- "type": "working",
- "waiting": 3,
- "log": [
- "string"
]
}
}
}Gibt den Stundenplan für eine Klasse zurück, der am angegebenen Datum gilt. Nur für Lehrer verfügbar.
| datum required | string <date> Datum |
| kuerzel required | string Kürzel der Klasse |
{- "status": "success",
- "data": {
- "stundeneintraege": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": null,
- "jahr": null
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
]
}
}Gibt den Stundenplan für einen Raum zurück, der am angegebenen Datum gilt. Nur für Lehrer verfügbar.
| datum required | string <date> Datum |
| kuerzel required | string Kürzel des Raums |
{- "status": "success",
- "data": {
- "stundeneintraege": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": null,
- "jahr": null
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
]
}
}Gibt den Stundenplan für einen Lehrer zurück, der am angegebenen Datum gilt. Nur für Lehrer verfügbar.
| datum required | string <date> Datum |
| kuerzel required | string Kürzel des Lehrers |
{- "status": "success",
- "data": {
- "stundeneintraege": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": null,
- "jahr": null
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
], - "aufsichten": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "_splanId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "ort": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "bezeichnung": "Pausenhof 1"
}, - "zeit": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
], - "aufsichtenReserven": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "_splanId": "3N2YiCPiu2xHyKHaH",
- "reservelehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "zeit": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
]
}
}Der Stundenplan kann wahlweise direkt die Kurse des Stundenplans und zugehörige Stundensetzungen, Aufsichten und Aufsichtreserven enthalten.
Es ist auch möglich, mehrere Stundenpläne hochzuladen. Der Status des Imports lässt sich über den entsprechenden Import Status Endpunkt abrufen.
In jedem Fall muss im Stundenraster
Nur für Admins verfügbar.
Array of objects (SPlanEingabe) |
{- "stundenplaene": [
- {
- "gueltigAb": "2023-05-28",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "kurse": [
- {
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "kuerzel": "6a"
}
], - "fach": {
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "stunden": 3,
- "setzungen": [
- {
- "raum": {
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "nummer": 3
}
}
]
}
], - "aufsichten": [
- {
- "lehrer": {
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "ort": {
- "bezeichnung": "Pausenhof 1"
}, - "zeit": {
- "nummer": 3
}
}
], - "aufsichtenreserven": [
- {
- "reservelehrer": {
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "zeit": {
- "nummer": 3
}
}
]
}
]
}{- "status": "success",
- "data": {
- "jobId": "3"
}
}Liefert die Fehlstunden eines Schülers, deren Datum im Gültigkeitsbereich (zwischen
gueltigAb und gueltigBis) eines Lernabschnitts liegen.
Nur für Admins verfügbar.
| schuelerId required | string Schüler ID |
| lernabschnittId required | string Lernabschnitt ID |
object (FehlstundeFilter) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "fehlstunden": [
- {
- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}
]
}
}Um Schülerdatensätze einzufügen muss ein aktuell gültiger Lernabschnitt vorhanden sein. Die Schülerdaten müssen zudem dem angegeben Datenschema entsprechen. Sind Schüler bereits in einem vorherigen Lernabschnitt vorhanden, werden diese in den aktuellen Lernabschnitt übernommen. Identifiziert werden Schüler dabei anhand von Vor- , Nachname und Geburtsdatum Nur für Admins verfügbar.
Array of objects (SchuelerEingabeLegacy) |
{- "schueler": [
- {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24T14:15:22Z",
- "klasse": "6a"
}
]
}{- "status": "success",
- "data": null
}Aktualisiert mehrere Schülereinträge auf einmal. Es werden alle Schülereinträge aktualisiert, die dem filter entsprechen. Der Schüler muss dem angegebenen Datenschema entsprechen.
Hierbei werden keine verknüpften Daten wie Fehlstunden, Kurslisten oder KurslistenEinträge aktualisiert.
Diese Anfrage ist z.B. dazu geeignet, Schüler in einen neuen Lernabschnitt oder eine neue Klasse zu übertragen.
Nur für Admins verfügbar.
required | object |
| nachname | string Der Nachname des Schülers |
| vorname | string Der Vorname des Schülers |
| geburtsdatum | string <date> Das Geburtsdatum des Schülers |
| klasse | string Das Kürzel der Klasse aus Plan B |
| schildJahrgang | string |
| schildKlasse | string |
object (ID) ID eines Dokuments in der Datenbank. |
{- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_lernabschnitt": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}{- "status": "success",
- "data": null
}Liefert Details zu einem Schüler. Nur für Admins verfügbar.
| id required | string Schüler ID |
{- "status": "success",
- "data": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert einen Schüler. Der Schüler muss dem angegebenen Datenschema entsprechen.
Es werden auch kommende (ab dem heutigen Datum) Absenzen, Fehlstunden und Schülerprofile und auch KurslistenEinträge aktualisiert
Wenn ein Schüler zu der vorgegebenen ID nicht existiert, wird ein Fehler zurückgegeben.
Hinweis: Der Auftrag wird asynchron in der Queue verarbeitet. Der Status der Verarbeitung kann über die Jobs-API abgefragt werden.
Nur für Admins verfügbar.
| id required | string Schüler ID |
| nachname | string Der Nachname des Schülers |
| vorname | string Der Vorname des Schülers |
| geburtsdatum | string <date> Das Geburtsdatum des Schülers |
| klasse | string Das Kürzel der Klasse aus Plan B |
| schildJahrgang | string |
| schildKlasse | string |
{- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A"
}{- "status": "success",
- "data": null
}Löscht einen Schüler. Dabei bleiben alle assoziierten Kurslisten, KurslistenEinträge, Fehlstunden erhalten, die zu dem Schüler einmal angelegt wurden.
Nur für Admins verfügbar.
| id required | string Schüler ID |
{- "status": "success",
- "data": null
}Liefert alle Schüler, die in einem Lernabschnitt und einer Klasse eingetragen sind. Wenn der Lernabschnitt mit der vorgegebenen ID nicht existiert, wird ein Fehler zurückgegeben. Wenn ein Lernabschnitt existiert, aber keine Schüler mit dem entsprechenden Klassenkürzel eingetragen sind, wird ein leeres Array zurückgegeben.
Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID |
required | object Filter die Schüler. Die Klasse muss angegeben werden. |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "schueler": [
- {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Um Schülerdatensätze einzufügen muss der im Parameter referenzierte Lernabschnitt vorhanden sein. Falls der Lernabschnitt nicht existiert, wird ein Fehler zurückgegeben (error).
Die Kombination aus Vorname, Nachname und Geburtsdatum muss pro Schule einzigartig sein.
Bei erfolgreicher Eintragung wird ein Array mit Ids der neu eingetragenen Schüler zurückgegeben, in der Reihenfolge, wie sie im Request angegeben wurden.
Wenn ein Schüler bereits existiert, wird dieser nicht neu eingetragen. Dies resultiert in zwar in einem
erfolgreichen Status (success, HTTP Code 207), es können aber weniger Schüler eingetragen worden sein, als im Request
angegeben.
Wenn also beispielsweise bei 10 Schüler ein Schüler bereits existiert, werden 9 Schüler eingetragen. Es wird eine detaillierte Rückmeldung des Datenbankservers weitergegeben. Weitere Infos zu möglichen Rückmeldungen zu Bulk Inserts: https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/#errors
Hinweis: Es werden durch diesen Endpunkt keine User-Accounts erstellt. Es handelt sich um reine Schülerdaten.
Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID, zu dem die Schüler eingetragen werden sollen. |
| nachname required | string Der Nachname des Schülers |
| vorname required | string Der Vorname des Schülers |
| geburtsdatum required | string <date> Das Geburtsdatum des Schülers |
| klasse required | string Das Kürzel der Klasse aus Plan B |
| schildJahrgang | string |
| schildKlasse | string |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Importiert den Vertretungsplan (Absenzen und Vertretungen), den das Untis Tool exportiert hat und an diesen Endpunkt senden kann.
| von required | string <date> Übernehme Änderungen ab diesem Datum |
| bis required | string <date> Übernehme Änderungen bis zu diesem Datum |
| gpu013 required | string Der Inhalt der Absenz-Datei |
| gpu014 required | string Der Inhalt der Vertretungs-Datei |
{- "von": "2019-08-24",
- "bis": "2019-08-24",
- "gpu013": "string",
- "gpu014": "string"
}{- "jobId": "string"
}Gibt Informationen über ein bestimmtes Gerät zurück.
{- "device": {
- "_id": "string",
- "_createdAt": "string",
- "_groupId": "string",
- "authorization": {
- "_createdAt": "2019-08-24T14:15:22Z",
- "_username": "string",
- "_userId": "string"
}, - "settings": {
- "name": "string",
- "location": "string",
- "audience": "Schüler",
- "offset": "Heute"
}, - "_lastSeen": "2019-08-24T14:15:22Z"
}, - "schule": {
- "_id": "string",
- "kuerzel": "string",
- "kurzBezeichnung": "string",
- "backend": "string",
- "bezeichnung": "string",
- "logoUrl": "string"
}
}Gibt den Vertretungsplan für ein authentifiziertes Gerät zurück. Je nach Einstellungen des Geräts können dies unterschiedliche Sichten und Tage sein.
{- "vertretungen": [
- {
- "type": "Vertretung",
- "id": "string",
- "stunde": "string",
- "vlehrer": "string",
- "olehrer": "string",
- "vraum": "string",
- "vfach": "string",
- "ofach": "string",
- "klassen": [
- "string"
]
}
], - "tagesbemerkung": {
- "datum": "2019-08-24",
- "bemerkung": "string"
}
}Liefert anonyme Statistiken zu Plan B. Die Statistiken werden in der Regel einmal täglich aktualisiert.
| version required | any Enum: "v2" "v3" API Version |
{- "users": 3031,
- "vertretungen": 41023,
- "uptime": "99,997%"
}Liefert Details zu einem Auftrag. Wenn mehrere Aufträge übermittlet wurden, kann hier auch der prozentuale Fortschritt unter dem Attribut progress abgefragt werden.
Nur für Admins verfügbar.
| jobId required | string Job Id |
{- "status": "success",
- "data": {
- "id": 0,
- "progress": 100,
- "returnvalue": { },
- "stacktrace": [
- "string"
], - "attemptsMade": 0,
- "delay": 0,
- "timestamp": 0,
- "finishedOn": 0,
- "processedOn": 0
}
}Liefert Details zu einem Auftrag. Wenn mehrere Aufträge übermittlet wurden, kann hier auch der prozentuale Fortschritt unter dem Attribut progress abgefragt werden.
Nur für Admins und untis-sync-tool verfügbar.
| jobId required | string Job Id |
{- "status": "success",
- "data": {
- "id": 0,
- "progress": 100,
- "returnvalue": { },
- "stacktrace": [
- "string"
], - "attemptsMade": 0,
- "delay": 0,
- "timestamp": 0,
- "finishedOn": 0,
- "processedOn": 0
}
}Falls sich ein Auftrag in der Warteschlange befindet und noch nicht bearbeitet wird, kann er mit diesem Endpunkt abgebrochen werden. Nur für Admins verfügbar.
| jobId required | string Job Id |
{- "status": "success",
- "data": null
}Liefert alle Absenzen, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Nur für Admins verfügbar.
required | object |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "absenzen": [
- {
- "typ": "lehrer",
- "fehlend": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "anfang": "2023-02-14",
- "anfangStunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45,
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "ende": "2023-02-14",
- "endeStunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45,
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "bemerkung": "Fortbildung",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Speichert einen neuen Absenzeintrag.
Nur für Admins verfügbar.
| verarbeiten | boolean Wenn |
| typ required | string (AbsenzTyp) Enum: "lehrer" "klassen" "schueler" "raeume" |
required | object (ID) ID eines Dokuments in der Datenbank. |
| anfang required | string <date> |
required | object (ID) ID eines Dokuments in der Datenbank. |
| ende required | string <date> |
required | object (ID) ID eines Dokuments in der Datenbank. |
| bemerkung | string |
[ ]{- "status": "success",
- "data": null
}Liefert Details zu einer Absenz. Nur für Admins verfügbar.
| id required | string Absenz ID |
{- "status": "success",
- "data": {
- "typ": "lehrer",
- "fehlend": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "anfang": "2023-02-14",
- "anfangStunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45,
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "ende": "2023-02-14",
- "endeStunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45,
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "bemerkung": "Fortbildung",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert eine Absenz. Der Typ der Absenz kann nicht geändert werden.
Nur für Admins verfügbar.
| id required | string Absenz ID |
| verarbeiten | boolean Wenn Gleiches gilt analog für fehlende Schüler und die Generierung von Fehlstunden. Wenn |
| typ | string (AbsenzTyp) Enum: "lehrer" "klassen" "schueler" "raeume" |
object (ID) ID eines Dokuments in der Datenbank. | |
| anfang | string <date> |
object (ID) ID eines Dokuments in der Datenbank. | |
| ende | string <date> |
object (ID) ID eines Dokuments in der Datenbank. | |
| bemerkung | string |
{- "typ": "lehrer",
- "fehlend": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "anfang": "2023-02-14",
- "anfangStunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "ende": "2023-02-14",
- "endeStunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "bemerkung": "Fortbildung"
}{- "status": "success",
- "data": null
}Liefert Details zu einem Stundenplan. Nur für Lehrer verfügbar.
| id required | string Stundenplan ID |
{- "status": "success",
- "data": {
- "gueltigAb": "2019-08-24",
- "planname": "string",
- "planversion": 0,
- "gueltigFuer": [
- {
- "kw": 1,
- "jahr": 2000
}
], - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert einen Stundenplan. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (StundenplanBasis) |
{- "stundenplan": {
- "gueltigAb": "2019-08-24",
- "planname": "string",
- "planversion": 0,
- "gueltigFuer": [
- {
- "kw": 1,
- "jahr": 2000
}
]
}
}{- "status": "success",
- "data": null
}Liefert alle Stundenpläne, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Nur für Lehrer verfügbar.
required | object |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "stundenplaene": [
- {
- "gueltigAb": "2019-08-24",
- "planname": "string",
- "planversion": 0,
- "gueltigFuer": [
- {
- "kw": 1,
- "jahr": 2000
}
], - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt einen Stundenplan ein. Nur für Admins verfügbar.
| gueltigAb required | string <date> |
| planname required | string |
| planversion | integer |
Array of objects |
{- "gueltigAb": "2019-08-24",
- "planname": "string",
- "planversion": 0,
- "gueltigFuer": [
- {
- "kw": 1,
- "jahr": 2000
}
]
}{- "status": "success",
- "data": null
}Liefert alle Klassen, die im Stundenplan vorkommen. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (KlasseBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "klassen": [
- {
- "kuerzel": "6a",
- "bezeichnung": "6a",
- "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt eine Klasse in den Stundenplan ein. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
| kuerzel required | string |
| bezeichnung | string |
object |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert alle Kurse, die im Stundenplan vorkommen.
Filter müssen als Query-Parameter übergeben werden, um die Kurse zu filtern.
Etwa so: /stundenplaene/{id}/?filter[lehrer][_id]={lehrerId}&filter[klassen][_id]={klasseId}.
Nur für Admins verfügbar.
| id required | string Stundenplan ID |
required | object Filter für die Kurse. Es muss mindestens ein Kriterium angegeben werden. |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "kurse": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}
]
}
}Fügt einen Kurs in den Stundenplan ein. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
Array of objects (ID) | |
Array of objects (ID) | |
object (ID) ID eines Dokuments in der Datenbank. | |
| stunden required | integer >= 0 |
| kopplung | string |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert alle Aufsichten, die im Stundenplan vorkommen. Filter müssen als Query-Parameter übergeben werden, um die Aufsichten zu filtern.
Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (AufsichtBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "aufsichten": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "_splanId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "ort": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "bezeichnung": "Pausenhof 1"
}, - "zeit": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
]
}
}Fügt eine Aufsicht in den Stundenplan ein.
Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (ID) ID eines Dokuments in der Datenbank. | |
required | object (ID) ID eines Dokuments in der Datenbank. |
required | object (ID) ID eines Dokuments in der Datenbank. |
| wochentag required | integer [ 1 .. 6 ] |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert alle Setzungen, die im Stundenplan vorkommen. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
required | object Filter für die Setzungen. Es muss mindestens ein Kriterium angegeben werden. |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "setzungen": [
- {
- "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt eine Setzung in den Stundenplan ein. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (ID) ID eines Dokuments in der Datenbank. | |
| tag required | integer [ 1 .. 6 ] |
required | object (ID) ID eines Dokuments in der Datenbank. |
object (ID) ID eines Dokuments in der Datenbank. |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert alle Ferien, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Der Zeitraum darf nicht länger als 365 Tage sein. Der Beginn muss vor dem Ende liegen.
Nur für Admins verfügbar.
required | object |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "ferien": [
- {
- "start": "2023-05-28",
- "end": "2023-05-28",
- "name": "Pfingstferien",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt eine Ferienzeit ein. Nur für Admins verfügbar.
| start required | string <date> |
| end required | string <date> |
| name required | string |
[ ]{- "status": "success",
- "data": null
}Liefert Details zu einer Ferienzeit. Nur für Admins verfügbar.
| id required | string Ferien ID |
{- "status": "success",
- "data": {
- "start": "2023-05-28",
- "end": "2023-05-28",
- "name": "Pfingstferien",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert eine Ferienzeit. Nur für Admins verfügbar.
| id required | string Ferien ID |
object (FerienBasis) |
{- "ferienEntschuldigung": {
- "start": "2023-05-28",
- "end": "2023-05-28",
- "name": "Pfingstferien"
}
}{- "status": "success",
- "data": null
}Liefert alle Stundenzeiten. Die hier gelieferten Zeiten bilden die Grundlage für den Import von Stundenplan- und Vertretungsinfos. D.h. die dort angegebenen Zeiten müssen in den hier gelieferten Zeiten enthalten sein.
{- "status": "success",
- "data": {
- "zeiten": [
- {
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45,
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Wenn es eine Zeit mit einem bestimmten Wert von "Stundennummer" schon gibt, wird dieser aktualisiert. Ist kein Eintrag mit dem Wert von "Stundennummer" vorhanden, wird ein neuer Eintrag angelegt. Die Zeiten bilden die Grundlage für jeden Planimport. Wird das Stundenraster neu hochgeladen, werden bereits vorhandene Pläne ggf. nicht mehr korrekt angezeigt. Es ist also sinnvoll, das Stundenraster nur einmalig zu Beginn hochzuladen.
required | Array of objects (ZeitEingabeStupas) |
{- "zeiten": [
- {
- "nummer": 3,
- "typ": "Unterricht",
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
]
}{- "status": "success",
- "data": null
}Liefert alle Stundenzeiten. Die hier gelieferten Zeiten bilden die Grundlage für den Import von Stundenplan- und Vertretungsinfos. D.h. die dort angegebenen Zeiten müssen in den hier gelieferten Zeiten enthalten sein.
object (ZeitBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "zeiten": [
- {
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45,
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Wenn es eine Zeit mit einem bestimmten Wert von "Stundennummer" schon gibt, wird dieser aktualisiert. Ist kein Eintrag mit dem Wert von "Stundennummer" vorhanden, wird ein neuer Eintrag angelegt. Die Zeiten bilden die Grundlage für jeden Planimport. Wird das Stundenraster neu hochgeladen, werden bereits vorhandene Pläne ggf. nicht mehr korrekt angezeigt. Es ist also sinnvoll, das Stundenraster nur einmalig zu Beginn hochzuladen.
| nummer required | integer [ 1 .. 24 ] Nummer der Stunde. Wird in der App als Bezeichnung der Stunde angezeigt, sofern nicht eine Kurzbezeichnung angegeben wurde. |
| typ required | string Enum: "Unterricht" "Aufsicht" Aufsichten können nur zu Zeiteinträgen vom Typ "Aufsicht" hinzugefügt werden. |
| reihenfolge required | integer Legt fest, in welcher Reihenfolge die Zeit im Plan dargestellt wird. |
| fortschrittAusblenden | boolean Verhindert die Darstellung von Zeitangaben zu dieser Stunde in der App. |
| kurzbezeichnung | string <= 3 characters Falls nicht die Nummer der Stunde angezeigt werden soll, kann hier eine Kurzbezeichnung angegeben werden. |
| bezeichnung required | string Wird in der App als Bezeichnung der Stunde angezeigt, sofern ausreichend Platz für die Darstellung vorhanden ist. |
| zeit required | string = 5 characters ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ Die Uhrzeit, zu der die Stunde beginnt. Format ist "HH:mm". |
| dauer required | integer [ 1 .. 300 ] Die Dauer der Stunde in Minuten. Wird u.A. benötigt um feststellen zu können, welche Stunde aktuell läuft. |
[ ]{- "status": "success",
- "data": null
}Liefert Details zu einer Zeit.
| id required | string Zeit ID |
{- "status": "success",
- "data": {
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45,
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert eine Zeit. Nur für Admins verfügbar.
| id required | string Zeit ID |
| nummer | integer [ 1 .. 24 ] Nummer der Stunde. Wird in der App als Bezeichnung der Stunde angezeigt, sofern nicht eine Kurzbezeichnung angegeben wurde. |
| typ | string Enum: "Unterricht" "Aufsicht" Aufsichten können nur zu Zeiteinträgen vom Typ "Aufsicht" hinzugefügt werden. |
| reihenfolge | integer Legt fest, in welcher Reihenfolge die Zeit im Plan dargestellt wird. |
| fortschrittAusblenden | boolean Verhindert die Darstellung von Zeitangaben zu dieser Stunde in der App. |
| kurzbezeichnung | string <= 3 characters Falls nicht die Nummer der Stunde angezeigt werden soll, kann hier eine Kurzbezeichnung angegeben werden. |
| bezeichnung | string Wird in der App als Bezeichnung der Stunde angezeigt, sofern ausreichend Platz für die Darstellung vorhanden ist. |
| zeit | string = 5 characters ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ Die Uhrzeit, zu der die Stunde beginnt. Format ist "HH:mm". |
| dauer | integer [ 1 .. 300 ] Die Dauer der Stunde in Minuten. Wird u.A. benötigt um feststellen zu können, welche Stunde aktuell läuft. |
{- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}{- "status": "success",
- "data": null
}Läuft derzeit ein Importvorgang, so kann über diesen Endpunkt der Status abgerufen werden.
Nue für Admins verfügbar.
{- "status": "success",
- "data": {
- "importstatus": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "status": "Lade Vertretungseintrag 37 von 49 für Di., 21.3.23 (Importauftrag von Wahl@SGS)",
- "steps": 50,
- "current": 37,
- "type": "working",
- "waiting": 3,
- "log": [
- "string"
]
}
}
}Deprecation notice: Dieser Endpunkt wird in Zukunft entfernt. Bitte stattdessen den Endpunkt /lernabschnitt/{lernabschnittId}/kurslisten verwenden.
Eine Kursliste muss immer einem Lernabschnitt und einem Kurs im Stundenplan zugeordet sein. Die Zuordnung der Liste zum Kurs erfolgt dabei über die KursID.
Falls es im Request eine Kursliste gibt, bei der kein Kurs mit dieser KursID in einem Stundenplan gibt, der im aktuellen Lernabschnitt beginnt (gueltigAb), so wird diese beim Import nicht berücksichtigt und dies wird im Importprotokoll (cf. /importstatus/kurslisten) vermerkt.
Falls es den angegebenen Lernabschnitt noch nicht gibt, wird dieser angelegt. Falls ein Lernabschnitt mit dem angegebenen Schuljahr und Halbjahr bereits existiert, wird dieser verwendet. Die Bezeichnung des Lernabschnitts wird dabei dann nicht aktualisiert (d.h. der Wert für "Bezeichnung" des Lernabschnitts wird nicht verwendet).
Falls es schon einen laufenden Importvorgang gibt, wird eine Fehlermeldung generiert und der Request nicht weiter bearbeitet.
Der aktuelle Status des Importvorgangs kann über den entsprechenden Endpunkt /importstatus/kurslisten abgefragt werden. Hier lässt sich nach Abschluss des Imports auch das Protokoll über den Importvorgang abrufen.
Nur für Admins verfügbar.
required | object (LernabschnittLegacy) Ein Lernabschnitt steht in der Regel für ein Schulhalbjahr. Diesen Abschnitten werden Kurslisten, Schüler und Fehlstunden zugeordet. |
required | Array of objects (KurslisteEingabeLegacy) |
{- "lernabschnitt": {
- "schuljahr": "2022",
- "halbjahr": "2",
- "bezeichnung": "2. Halbjahr 2022/23"
}, - "kurslisten": [
- {
- "istKlassenliste": false,
- "bezeichnung": "GK IF Q1 Wahl",
- "lehrer": "Wahl",
- "klassenkuerzel": "Q1",
- "fach": "IF",
- "kursID": "3N2YiCPiu2xHyKHaH",
- "kursart": "PUK",
- "eintraege": [
- {
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24T14:15:22Z",
- "klasse": "6a"
}, - "kursart": "GKS"
}
]
}
]
}{- "status": "success",
- "data": {
- "jobId": "3"
}
}Liefert Details zu einer Kursliste. Nur für Admins verfügbar.
| kurslisteId required | string Kursliste ID |
{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "bezeichnung": "GK IF Q1 Wahl",
- "klassenkuerzel": "Q1",
- "kursart": "PUK",
- "kursID": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert eine Kursliste. Die Kursliste muss dem angegebenen Datenschema entsprechen.
Nur für Admins verfügbar.
| kurslisteId required | string Kursliste ID |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. | |
| bezeichnung required | string Eine möglichst eindeutige Bezeichnung für den Kurs. Der Benutzer muss den Kurs eventuell aus der Gesamtübersicht aller Kurse durch eine Suche finden können. Daher ist es ratsam, hier Informationen wie Fach, Kursnummer, Kursart und Lehrer zu verwenden. |
| klassenkuerzel | string Kürzel der Klasse oder Jahrgangsstufe |
| kursart | string Die Kursart kann z.B. die Werte "PUK", "PUT", "ZUV", "WP2" etc haben. Sie wird automatisch für alle Schüler des Kurses übernommen. Bei den Schülerdatensätzen kann aber auch jeweils eine individuell abweichende Kursbelegung verwendet werden (z.B. "AB3" wenn ein Kurs durch einen Schüler als 4. Abiturfach belegt wurde). Diese Information wird benötigt, um bei den Klausuren die Schüler zu bestimmen, die an einem Klausurtermin teilnehmen. Als Klausurschreiber zählen alle Schüler, die den Kurs als "GKS", "LK1", "LK2", "AB4" oder "AB3" belegt haben. Wenn eine Klausur als Vorabitur- oder Abiturklausur markiert ist, werden nur die Schüler als Klausurschreiber gezählt, die den Kurs als "LK1", "LK2" oder "AB3" belegt haben. |
| kursID | string (MongoID) |
{- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "bezeichnung": "GK IF Q1 Wahl",
- "klassenkuerzel": "Q1",
- "kursart": "PUK",
- "kursID": "3N2YiCPiu2xHyKHaH"
}{- "status": "success",
- "data": null
}Löscht eine Kursliste. Dabei bleiben alle assoziierten KurslistenEinträge erhalten, die zu der Kursliste einmal angelegt wurden.
Nur für Admins verfügbar.
| kurslisteId required | string Kursliste ID |
{- "status": "success",
- "data": null
}Fügt Kurslisten-Einträge in eine Kursliste ein. Die Kurslisten-Einträge müssen dem angegebenen Datenschema entsprechen. Es wird jeweils geprüft, ob der Schüler in der Liste bereits vorhanden ist.
Die Absenzen des Schülers, die den Lernabschnitt der Kursliste betreffen und noch in der Zukunft liegen, werden abgeglichen, Fehlstunden bzw. Beurlaubungen werden ggf. eingetragen.
Der Vorgang wird asynchron in der Queue verarbeitet. Der Status der Verarbeitung kann über die Jobs-API abgefragt werden.
Nur für Admins verfügbar.
| kurslisteId required | string Kursliste ID |
| kursart required | string Die Art des Kurses, mit der der Schüler den Kurs belegt (z.B. "GKM", "GKS", "AB4" etc.). Siehe Kursarten von Kurslisten. |
required | object (ID) ID eines Dokuments in der Datenbank. |
[ ]{- "status": "success",
- "data": null
}Liefert alle Kurslisten, die zu einem Lernabschnitt gehören. Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID |
{- "status": "success",
- "data": {
- "kurslisten": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "bezeichnung": "GK IF Q1 Wahl",
- "klassenkuerzel": "Q1",
- "kursart": "PUK",
- "kursID": "3N2YiCPiu2xHyKHaH"
}
]
}
}Eine Kursliste muss immer einem Lernabschnitt und einem Kurs im Stundenplan zugeordet sein. Die Zuordnung der Liste zum Kurs erfolgt dabei über die KursID.
Falls es im Request eine Kursliste gibt, bei der kein Kurs mit dieser KursID in einem Stundenplan gibt, der im aktuellen Lernabschnitt beginnt (gueltigAb), so wird diese beim Import nicht berücksichtigt und dies wird im Importprotokoll (cf. /importstatus/kurslisten) vermerkt.
Falls es den angegebenen Lernabschnitt noch nicht gibt, wird dieser angelegt. Falls ein Lernabschnitt mit dem angegebenen Schuljahr und Halbjahr bereits existiert, wird dieser verwendet. Die Bezeichnung des Lernabschnitts wird dabei dann nicht aktualisiert (d.h. der Wert für "Bezeichnung" des Lernabschnitts wird nicht verwendet).
Falls es schon einen laufenden Importvorgang gibt, wird eine Fehlermeldung generiert und der Request nicht weiter bearbeitet.
Der aktuelle Status des Importvorgangs kann über den entsprechenden Endpunkt /importstatus/kurslisten abgefragt werden. Hier lässt sich nach Abschluss des Imports auch das Protokoll über den Importvorgang abrufen.
Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. | |
| bezeichnung required | string Eine möglichst eindeutige Bezeichnung für den Kurs. Der Benutzer muss den Kurs eventuell aus der Gesamtübersicht aller Kurse durch eine Suche finden können. Daher ist es ratsam, hier Informationen wie Fach, Kursnummer, Kursart und Lehrer zu verwenden. |
| klassenkuerzel | string Kürzel der Klasse oder Jahrgangsstufe |
| kursart | string Die Kursart kann z.B. die Werte "PUK", "PUT", "ZUV", "WP2" etc haben. Sie wird automatisch für alle Schüler des Kurses übernommen. Bei den Schülerdatensätzen kann aber auch jeweils eine individuell abweichende Kursbelegung verwendet werden (z.B. "AB3" wenn ein Kurs durch einen Schüler als 4. Abiturfach belegt wurde). Diese Information wird benötigt, um bei den Klausuren die Schüler zu bestimmen, die an einem Klausurtermin teilnehmen. Als Klausurschreiber zählen alle Schüler, die den Kurs als "GKS", "LK1", "LK2", "AB4" oder "AB3" belegt haben. Wenn eine Klausur als Vorabitur- oder Abiturklausur markiert ist, werden nur die Schüler als Klausurschreiber gezählt, die den Kurs als "LK1", "LK2" oder "AB3" belegt haben. |
| kursID | string (MongoID) |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert die Fehlstunden eines Schülers, deren Datum im Gültigkeitsbereich (zwischen
gueltigAb und gueltigBis) eines Lernabschnitts liegen.
Nur für Admins verfügbar.
| schuelerId required | string Schüler ID |
| lernabschnittId required | string Lernabschnitt ID |
object (FehlstundeFilter) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "fehlstunden": [
- {
- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}
]
}
}Liefert alle Fehlstunden eines Lernabschnitts.
Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID |
| klassenkuerzel required | string Klassenkürzel |
object (FehlstundeFilter) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "fehlstunden": [
- {
- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}
]
}
}Liefert alle Fehlstunden innerhalb eines Zeitraums.
Nur für Admins verfügbar.
| klassenkuerzel required | string Klassenkürzel |
| von required | string <date> Startdatum |
| bis required | string <date> Enddatum |
object (FehlstundeFilter) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "fehlstunden": [
- {
- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}
]
}
}Liefert Details zu einer Fehlstunde. Nur für Admins verfügbar.
| fehlstundeId required | string Fehlstunde ID |
{- "status": "success",
- "data": {
- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}
}Aktualisiert eine Fehlstunde. Dabei kann nur der Status der Fehlstunde geändert werden. Nur für Admins verfügbar.
| fehlstundeId required | string Fehlstunde ID |
object (FehlstundenEntschuldigung) |
{- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}
}{- "status": "success",
- "data": null
}Fügt eine Fehlstunde ein.
Wenn es schon für den Zeitpunkt (nach datum und stundeneintrag.stunde._id) eine Fehlstunde gibt, wird die Stunde zunächst gelöscht. Sollte es sich bei der neuen Fehlstunde um eine Fehlstunde im gleichen Kurs (nach kursliste._id) handeln, wird die fehlstundenEntschuldigung übernommen.
Nur für Admins verfügbar.
| datum required | string <date> |
object (FehlstundenEntschuldigung) | |
required | object (ID) ID eines Dokuments in der Datenbank. |
required | object (ID) ID eines Dokuments in der Datenbank. |
{- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "schueler": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert die Fehlstunden eines Schülers, deren Datum im Gültigkeitsbereich (zwischen
gueltigAb und gueltigBis) eines Lernabschnitts liegen.
Nur für Admins verfügbar.
| schuelerId required | string Schüler ID |
| lernabschnittId required | string Lernabschnitt ID |
object (FehlstundeFilter) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "fehlstunden": [
- {
- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}
]
}
}Liefert alle Fehlstunden eines Lernabschnitts.
Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID |
| klassenkuerzel required | string Klassenkürzel |
object (FehlstundeFilter) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "fehlstunden": [
- {
- "datum": "2023-02-14",
- "fehlstundenEntschuldigung": {
- "status": "beurlaubt"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "stundeneintrag": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "setzungsID": "string",
- "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kursID": "string",
- "faktor": 1,
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a",
- "splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- { }
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "kopplung": "abi25GK3",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "gueltigAb": "2019-08-24T14:15:22Z",
- "gueltigFuer": [
- {
- "kw": 12,
- "jahr": 2023
}
], - "planname": "2022-23-2 ab KW04",
- "planversion": 1,
- "_modifiedAt": "2019-08-24T14:15:22Z"
}
}, - "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}
]
}
}Liefert alle Lernabschnitte, die in Plan B eingetragen sind. Nur für Admins verfügbar.
{- "status": "success",
- "data": {
- "lernabschnitte": [
- {
- "schuljahr": "2022",
- "halbjahr": "2",
- "bezeichnung": "2. Halbjahr 2022/23",
- "gueltigAb": "2023-05-28",
- "gueltigBis": "2023-05-28",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt einen neuen Lernabschnitt ein. Der Lernabschnitt muss dem angegebenen Datenschema entsprechen. Nur für Admins verfügbar.
| schuljahr required | string Das Schuljahr, zu dem der Lernabschnitt gehört. |
| halbjahr required | string Das Halbjahr, zu dem der Lernabschnitt gehört. |
| bezeichnung required | string Die Bezeichnung des Lernabschnitts. |
| gueltigAb required | string <date> Das Datum, ab dem der Lernabschnitt gültig ist. |
| gueltigBis required | string <date> Das Datum, bis zu dem der Lernabschnitt gültig ist. |
{- "schuljahr": "2022",
- "halbjahr": "2",
- "bezeichnung": "2. Halbjahr 2022/23",
- "gueltigAb": "2023-05-28",
- "gueltigBis": "2023-05-28"
}{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einem Lernabschnitt. Nur für Admins verfügbar.
| id required | string Lernabschnitt ID |
{- "status": "success",
- "data": {
- "schuljahr": "2022",
- "halbjahr": "2",
- "bezeichnung": "2. Halbjahr 2022/23",
- "gueltigAb": "2023-05-28",
- "gueltigBis": "2023-05-28",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Löscht einen Lernabschnitt. Dabei werden auch alle Kurslisten, KurslistenEinträge, Fehlstunden gelöscht, die zu dem Lernabschnitt gehören. Fehlstunden werden aus den Kurslisten der jeweiligen Stunden bestimmt. Nur für Admins verfügbar.
| id required | string Lernabschnitt ID |
{- "status": "success",
- "data": null
}Aktualisiert ein oder mehrere Attribute eines Lernabschnitts. Nur für Admins verfügbar.
| id required | string Lernabschnitt ID |
| schuljahr | string Das Schuljahr, zu dem der Lernabschnitt gehört. |
| halbjahr | string Das Halbjahr, zu dem der Lernabschnitt gehört. |
| bezeichnung | string Die Bezeichnung des Lernabschnitts. |
| gueltigAb | string <date> Das Datum, ab dem der Lernabschnitt gültig ist. |
| gueltigBis | string <date> Das Datum, bis zu dem der Lernabschnitt gültig ist. |
{- "schuljahr": "2022",
- "halbjahr": "2",
- "bezeichnung": "2. Halbjahr 2022/23",
- "gueltigAb": "2023-05-28",
- "gueltigBis": "2023-05-28"
}{- "status": "success",
- "data": null
}Um Schülerdatensätze einzufügen muss der im Parameter referenzierte Lernabschnitt vorhanden sein. Falls der Lernabschnitt nicht existiert, wird ein Fehler zurückgegeben (error).
Die Kombination aus Vorname, Nachname und Geburtsdatum muss pro Schule einzigartig sein.
Bei erfolgreicher Eintragung wird ein Array mit Ids der neu eingetragenen Schüler zurückgegeben, in der Reihenfolge, wie sie im Request angegeben wurden.
Wenn ein Schüler bereits existiert, wird dieser nicht neu eingetragen. Dies resultiert in zwar in einem
erfolgreichen Status (success, HTTP Code 207), es können aber weniger Schüler eingetragen worden sein, als im Request
angegeben.
Wenn also beispielsweise bei 10 Schüler ein Schüler bereits existiert, werden 9 Schüler eingetragen. Es wird eine detaillierte Rückmeldung des Datenbankservers weitergegeben. Weitere Infos zu möglichen Rückmeldungen zu Bulk Inserts: https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/#errors
Hinweis: Es werden durch diesen Endpunkt keine User-Accounts erstellt. Es handelt sich um reine Schülerdaten.
Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID, zu dem die Schüler eingetragen werden sollen. |
| nachname required | string Der Nachname des Schülers |
| vorname required | string Der Vorname des Schülers |
| geburtsdatum required | string <date> Das Geburtsdatum des Schülers |
| klasse required | string Das Kürzel der Klasse aus Plan B |
| schildJahrgang | string |
| schildKlasse | string |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert alle Kurslisten, die zu einem Lernabschnitt gehören. Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID |
{- "status": "success",
- "data": {
- "kurslisten": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "bezeichnung": "GK IF Q1 Wahl",
- "klassenkuerzel": "Q1",
- "kursart": "PUK",
- "kursID": "3N2YiCPiu2xHyKHaH"
}
]
}
}Eine Kursliste muss immer einem Lernabschnitt und einem Kurs im Stundenplan zugeordet sein. Die Zuordnung der Liste zum Kurs erfolgt dabei über die KursID.
Falls es im Request eine Kursliste gibt, bei der kein Kurs mit dieser KursID in einem Stundenplan gibt, der im aktuellen Lernabschnitt beginnt (gueltigAb), so wird diese beim Import nicht berücksichtigt und dies wird im Importprotokoll (cf. /importstatus/kurslisten) vermerkt.
Falls es den angegebenen Lernabschnitt noch nicht gibt, wird dieser angelegt. Falls ein Lernabschnitt mit dem angegebenen Schuljahr und Halbjahr bereits existiert, wird dieser verwendet. Die Bezeichnung des Lernabschnitts wird dabei dann nicht aktualisiert (d.h. der Wert für "Bezeichnung" des Lernabschnitts wird nicht verwendet).
Falls es schon einen laufenden Importvorgang gibt, wird eine Fehlermeldung generiert und der Request nicht weiter bearbeitet.
Der aktuelle Status des Importvorgangs kann über den entsprechenden Endpunkt /importstatus/kurslisten abgefragt werden. Hier lässt sich nach Abschluss des Imports auch das Protokoll über den Importvorgang abrufen.
Nur für Admins verfügbar.
| lernabschnittId required | string Lernabschnitt ID |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. | |
| bezeichnung required | string Eine möglichst eindeutige Bezeichnung für den Kurs. Der Benutzer muss den Kurs eventuell aus der Gesamtübersicht aller Kurse durch eine Suche finden können. Daher ist es ratsam, hier Informationen wie Fach, Kursnummer, Kursart und Lehrer zu verwenden. |
| klassenkuerzel | string Kürzel der Klasse oder Jahrgangsstufe |
| kursart | string Die Kursart kann z.B. die Werte "PUK", "PUT", "ZUV", "WP2" etc haben. Sie wird automatisch für alle Schüler des Kurses übernommen. Bei den Schülerdatensätzen kann aber auch jeweils eine individuell abweichende Kursbelegung verwendet werden (z.B. "AB3" wenn ein Kurs durch einen Schüler als 4. Abiturfach belegt wurde). Diese Information wird benötigt, um bei den Klausuren die Schüler zu bestimmen, die an einem Klausurtermin teilnehmen. Als Klausurschreiber zählen alle Schüler, die den Kurs als "GKS", "LK1", "LK2", "AB4" oder "AB3" belegt haben. Wenn eine Klausur als Vorabitur- oder Abiturklausur markiert ist, werden nur die Schüler als Klausurschreiber gezählt, die den Kurs als "LK1", "LK2" oder "AB3" belegt haben. |
| kursID | string (MongoID) |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert alle Räume, die in Plan B eingetragen sind. Nur für Admins verfügbar.
object (RaumBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "raeume": [
- {
- "kuerzel": "R413",
- "info": "Raum 413",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt einen neuen Raum ein. Nur für Admins verfügbar.
| kuerzel required | string |
| info | string |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einem Raum.
Nur für Admins verfügbar.
| id required | string Raum ID |
{- "status": "success",
- "data": {
- "kuerzel": "R413",
- "info": "Raum 413",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Liefert alle Fächer, die in Plan B eingetragen sind. Nur für Admins verfügbar.
object (FachBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "faecher": [
- {
- "kuerzel": "IF",
- "bezeichnung": "Informatik",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt ein neues Fach ein. Nur für Admins verfügbar.
| kuerzel required | string |
| bezeichnung | string |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einem Fach.
Nur für Admins verfügbar.
| id required | string Fach ID |
{- "status": "success",
- "data": {
- "kuerzel": "IF",
- "bezeichnung": "Informatik",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert ein Fach.
Nur für Admins verfügbar.
| id required | string Fach ID |
| kuerzel | string |
| bezeichnung | string |
{- "kuerzel": "IF",
- "bezeichnung": "Informatik"
}{- "status": "success",
- "data": null
}Liefert alle Orte für Aufsichten, die in Plan B eingetragen sind.
Nur für Admins verfügbar.
object (OrtBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "faecher": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "bezeichnung": "Pausenhof 1"
}
]
}
}Fügt einen neuen Ort ein.
Nur für Admins verfügbar.
| bezeichnung required | string |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einem Aufsichts-Ort.
Nur für Admins verfügbar.
| id required | string Ort ID |
{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "bezeichnung": "Pausenhof 1"
}
}Aktualisiert einen Ort.
Nur für Admins verfügbar.
| id required | string Ort ID |
| bezeichnung | string |
{- "bezeichnung": "Aula"
}{- "status": "success",
- "data": null
}Liefert alle Klassen, die im Stundenplan vorkommen. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (KlasseBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "klassen": [
- {
- "kuerzel": "6a",
- "bezeichnung": "6a",
- "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt eine Klasse in den Stundenplan ein. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
| kuerzel required | string |
| bezeichnung | string |
object |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einer Klasse.
Nur für Admins verfügbar.
| id required | string Klasse ID |
{- "status": "success",
- "data": {
- "kuerzel": "6a",
- "bezeichnung": "6a",
- "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert eine Klasse.
Nur für Admins verfügbar.
| id required | string Klasse ID |
| kuerzel | string |
| bezeichnung | string |
object |
{- "kuerzel": "6a",
- "bezeichnung": "6a",
- "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}{- "status": "success",
- "data": null
}Liefert alle Kurse, die im Stundenplan vorkommen.
Filter müssen als Query-Parameter übergeben werden, um die Kurse zu filtern.
Etwa so: /stundenplaene/{id}/?filter[lehrer][_id]={lehrerId}&filter[klassen][_id]={klasseId}.
Nur für Admins verfügbar.
| id required | string Stundenplan ID |
required | object Filter für die Kurse. Es muss mindestens ein Kriterium angegeben werden. |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "kurse": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}
]
}
}Fügt einen Kurs in den Stundenplan ein. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
Array of objects (ID) | |
Array of objects (ID) | |
object (ID) ID eines Dokuments in der Datenbank. | |
| stunden required | integer >= 0 |
| kopplung | string |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einem Kurs.
Nur für Admins verfügbar.
| id required | string Kurs ID |
{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}
}Aktualisiert einen Kurs.
Nur für Admins verfügbar.
| id required | string Kurs ID |
Array of objects (ID) | |
Array of objects (ID) | |
object (ID) ID eines Dokuments in der Datenbank. | |
| stunden | integer >= 0 |
| kopplung | string |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. |
{- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}{- "status": "success",
- "data": null
}Liefert alle Aufsichten, die im Stundenplan vorkommen. Filter müssen als Query-Parameter übergeben werden, um die Aufsichten zu filtern.
Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (AufsichtBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "aufsichten": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "_splanId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "ort": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "bezeichnung": "Pausenhof 1"
}, - "zeit": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
]
}
}Fügt eine Aufsicht in den Stundenplan ein.
Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (ID) ID eines Dokuments in der Datenbank. | |
required | object (ID) ID eines Dokuments in der Datenbank. |
required | object (ID) ID eines Dokuments in der Datenbank. |
| wochentag required | integer [ 1 .. 6 ] |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einer Aufsicht.
Nur für Admins verfügbar.
| id required | string Aufsicht ID |
{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "_splanId": "3N2YiCPiu2xHyKHaH",
- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}, - "wochentag": 1,
- "ort": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "bezeichnung": "Pausenhof 1"
}, - "zeit": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "nummer": 3,
- "typ": "Unterricht",
- "reihenfolge": 5,
- "fortschrittAusblenden": false,
- "kurzbezeichnung": "3.",
- "bezeichnung": "3. Stunde",
- "zeit": "09:55",
- "dauer": 45
}
}
}Aktualisiert eine Aufsicht.
Nur für Admins verfügbar.
| id required | string Aufsicht ID |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. | |
| wochentag | integer [ 1 .. 6 ] |
{- "lehrer": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "ort": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "zeit": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "wochentag": 1
}{- "status": "success",
- "data": null
}Liefert alle Setzungen, die im Stundenplan vorkommen. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
required | object Filter für die Setzungen. Es muss mindestens ein Kriterium angegeben werden. |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "setzungen": [
- {
- "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt eine Setzung in den Stundenplan ein. Nur für Admins verfügbar.
| id required | string Stundenplan ID |
object (ID) ID eines Dokuments in der Datenbank. | |
| tag required | integer [ 1 .. 6 ] |
required | object (ID) ID eines Dokuments in der Datenbank. |
object (ID) ID eines Dokuments in der Datenbank. |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einer Setzung.
Nur für Admins verfügbar.
| id required | string Setzung ID |
{- "status": "success",
- "data": {
- "raum": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "R413"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH",
- "lehrer": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "Wahl"
}
], - "klassen": [
- {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "6a"
}
], - "fach": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "kuerzel": "IF"
}, - "stunden": 3,
- "kopplung": "abi24LK1",
- "kursliste": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "_splan": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert eine Setzung.
Nur für Admins verfügbar.
| id required | string Setzung ID |
object (ID) ID eines Dokuments in der Datenbank. | |
| tag | integer [ 1 .. 6 ] |
object (ID) ID eines Dokuments in der Datenbank. | |
object (ID) ID eines Dokuments in der Datenbank. |
{- "raum": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "tag": 1,
- "stunde": {
- "_id": "3N2YiCPiu2xHyKHaH"
}, - "kurs": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}{- "status": "success",
- "data": null
}Liefert alle Lehrer, die in Plan B eingetragen sind. Nur für Admins verfügbar.
object (LehrerBasis) | |
object (QueryOptions) |
{- "status": "success",
- "data": {
- "lehrer": [
- {
- "kuerzel": "Wahl",
- "nachname": "Wahle",
- "vorname": "Christian",
- "anrede": "Herr",
- "titel": "Dr.",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}Fügt einen neuen Lehrer ein. Nur für Admins verfügbar.
| kuerzel required | string |
| nachname | string |
| vorname | string |
| anrede | string Enum: "Herr" "Frau" |
| titel | string |
[ ]{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH"
}
}Liefert Details zu einem Lehrer.
Nur für Admins verfügbar.
| id required | string Lehrer ID |
{- "status": "success",
- "data": {
- "kuerzel": "Wahl",
- "nachname": "Wahle",
- "vorname": "Christian",
- "anrede": "Herr",
- "titel": "Dr.",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert einen Lehrer.
Nur für Admins verfügbar.
| id required | string Lehrer ID |
| kuerzel | string |
| nachname | string |
| vorname | string |
| anrede | string Enum: "Herr" "Frau" |
| titel | string |
{- "kuerzel": "Wahl",
- "nachname": "Wahle",
- "vorname": "Christian",
- "anrede": "Herr",
- "titel": "Dr."
}{- "status": "success",
- "data": null
}Liefert den hinterlegten Datensatz zu diesem Typ. Nur für Admins verfügbar.
| typ required | string Typ des Datensatzes |
{- "status": "success",
- "data": {
- "_id": "3N2YiCPiu2xHyKHaH",
- "typ": "Blockung EF",
- "datensatz": "string",
- "_modifiedAt": "2019-08-24T14:15:22Z",
- "_createdAt": "2019-08-24T14:15:22Z",
- "_username": "admin@DEMO"
}
}Die Ablage dient lediglich dem Austausch von Daten zwischen IBIZA und MacStupas5 und IBIZA. Wenn zu einem bestimmten Typ noch kein Datensatz vorliegt wird dieser angelegt. Andernfalls wird ein vorhandener Datensatz aktualisiert. Außer den Attributen "typ" und "datensatz" dürfen keine weiteren Attribute übergeben werden. Nur für Admins verfügbar.
| typ required | string Der Typ des Datensatzes |
| datensatz required | string Der Datensatz, i.d.R. als JSON String |
{- "typ": "Blockung EF",
- "datensatz": "string"
}{- "status": "success",
- "data": null
}Fügt Kurslisten-Einträge in eine Kursliste ein. Die Kurslisten-Einträge müssen dem angegebenen Datenschema entsprechen. Es wird jeweils geprüft, ob der Schüler in der Liste bereits vorhanden ist.
Die Absenzen des Schülers, die den Lernabschnitt der Kursliste betreffen und noch in der Zukunft liegen, werden abgeglichen, Fehlstunden bzw. Beurlaubungen werden ggf. eingetragen.
Der Vorgang wird asynchron in der Queue verarbeitet. Der Status der Verarbeitung kann über die Jobs-API abgefragt werden.
Nur für Admins verfügbar.
| kurslisteId required | string Kursliste ID |
| kursart required | string Die Art des Kurses, mit der der Schüler den Kurs belegt (z.B. "GKM", "GKS", "AB4" etc.). Siehe Kursarten von Kurslisten. |
required | object (ID) ID eines Dokuments in der Datenbank. |
[ ]{- "status": "success",
- "data": null
}Liefert Details zu einem Kurslisten-Eintrag. Nur für Admins verfügbar.
| kurslistenEintragId required | string Kurslisten-Eintrag ID |
{- "status": "success",
- "data": {
- "kursart": "GKM",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
}Aktualisiert einen Kurslisten-Eintrag. Der Kurslisten-Eintrag muss dem angegebenen Datenschema entsprechen.
Nur für Admins verfügbar.
| kurslistenEintragId required | string Kurslisten-Eintrag ID |
| kursart | string Die Art des Kurses, mit der der Schüler den Kurs belegt (z.B. "GKM", "GKS", "AB4" etc.). Siehe Kursarten von Kurslisten. |
{- "kursart": "GKM"
}{- "status": "success",
- "data": null
}Löscht einen Kurslisten-Eintrag.
Nur für Admins verfügbar.
| kurslistenEintragId required | string Kurslisten-Eintrag ID |
{- "status": "success",
- "data": null
}Liefert alle Kurslisten-Einträge, die zu einer Kursliste gehören, alphabetisch sortiert nach Nachname und Vorname. Nur für Admins verfügbar.
| kurslisteId required | string Kursliste ID |
{- "status": "success",
- "data": {
- "kurslisteEintraege": [
- {
- "kursart": "GKM",
- "schueler": {
- "nachname": "Simpson",
- "vorname": "Bart",
- "geburtsdatum": "2019-08-24",
- "klasse": "6a",
- "schildJahrgang": "06",
- "schildKlasse": "6A",
- "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}, - "_id": "3N2YiCPiu2xHyKHaH",
- "_groupId": "3N2YiCPiu2xHyKHaH"
}
]
}
}