AktuellerRedner - OpenSlides/OpenSlides GitHub Wiki
⚠️ WarnungDie Schnittstelle existiert nur für den OpenSlides-Client. Eine Aufwärts- bzw. Abwärtskompatibilität wird nicht garantiert. Schnittstellen können bei Bedarf ohne Ankündigung geändert werden.
Alle Daten, um den Namen des aktuellen Redners herauszufinden, lassen sich über folgendes Request errechnen:
[
{
"collection": "meeting",
"ids": [
1
],
"fields": {
"reference_projector_id": {
"type": "relation",
"collection": "projector",
"fields": {
"current_projection_ids": {
"type": "relation-list",
"collection": "projection",
"fields": {
"content_object_id": {
"type": "generic-relation",
"fields": {
"list_of_speakers_id": {
"type": "relation",
"collection": "list_of_speakers",
"fields": {
"speaker_ids": {
"type": "relation-list",
"collection": "speaker",
"fields": {
"begin_time": null,
"end_time": null,
"meeting_user_id": {
"type": "relation",
"collection": "meeting_user",
"fields": {
"user_id": {
"type": "relation",
"collection": "user",
"fields": {
"first_name": null,
"last_name": null,
"title": null
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
]
Wird dieses Request in die Datei current-speaker
gespeichert, dann lassen sich die Daten wie folgt aufrufen.
openslides-performance request /system/autoupdate?single=true --body-file current-speaker
Die zurückgegebenen Daten sehen Beispielsweise wie folgt aus:
{
"list_of_speakers/2/speaker_ids": [
1,
2,
3,
4
],
"meeting/1/reference_projector_id": 2,
"meeting_user/1/user_id": 1,
"meeting_user/2/user_id": 2,
"meeting_user/3/user_id": 3,
"projection/4/content_object_id": "topic/1",
"projector/2/current_projection_ids": [
4
],
"speaker/1/begin_time": 1708531315,
"speaker/1/end_time": 1708533354,
"speaker/1/meeting_user_id": 1,
"speaker/2/begin_time": 1708533354,
"speaker/2/meeting_user_id": 2,
"speaker/3/meeting_user_id": 3,
"speaker/4/meeting_user_id": 1,
"topic/1/list_of_speakers_id": 2,
"user/1/first_name": "Max",
"user/1/last_name": "Mustermann",
"user/2/first_name": "Helga",
"user/2/last_name": "Musterfrau",
"user/3/first_name": "Hans",
"user/3/last_name": "Müller"
}
Damit das Request funktioniert, muss man sich authentifizieren. Über das Tool openslides-performance funktioniert dies automatisch.
Lässt man das attribute ?single=true
weg, wird das Request nicht geschlossen. Ändern sich die angefragten Daten, dann werden die Änderungen gepusht
Um den aktuellen Redner zu berechnen müssen die Werte, die mit speaker/
verglichen werden vergichen werden. Der aktuelle Redner ist, wenn
speaker/X/begin_time
gesetzt ist und speaker/X/end_time
nicht gesetzt ist.
Von diesem speaker muss das Feld speaker/X/meeting_user_id
und darüber
meeting_user/X/user_id
gefolgt werden. Die eigentlichen Nutzerdaten findet man
unter user/X/first_name
und user/X/last_name
.