AktuellerRedner - OpenSlides/OpenSlides GitHub Wiki

Aktueller Redner

⚠️ Warnung

Die 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.

Daten abrufen

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

Berechnen des aktuellen Redners

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.

⚠️ **GitHub.com Fallback** ⚠️