From ee3831ecf3c6d9c33b6e6c0be69e46c39cbc3886 Mon Sep 17 00:00:00 2001 From: Michael Fink Amores Date: Sat, 18 Dec 2021 14:48:13 +0100 Subject: [PATCH] feat: room booking workflow Fixes #9 --- _index.yaml | 27 ++ room-booking.yaml | 755 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 782 insertions(+) create mode 100644 room-booking.yaml diff --git a/_index.yaml b/_index.yaml index 050aa70..1fe834e 100644 --- a/_index.yaml +++ b/_index.yaml @@ -85,5 +85,32 @@ general-eo-tickets: - "General Exam-Office-Tickets" - | Here you can view all the general exam-office-tickets that concern you. + instances: + - { tag: school, school: "IfI" } + +room-booking: + graph-file: room-booking.yaml + category: "booking" + definition-scope: school + definition-description: + fallback-lang: de-de-formal + fallback: + - "Raumbuchungen" + - null + translations: + en-eu: + - "Room Bookings" + - null + instance-description: + fallback-lang: de-de-formal + fallback: + - "Raumbuchungen" + - | + Hier können Klausurräume/Prüfungstermine beantragt und Einzelraumbuchungen vorgenommen werden. + translations: + en-eu: + - "Room Bookings" + - | + Here exam rooms/dates can be requested and individual room bookings can be made. instances: - { tag: school, school: "IfI" } \ No newline at end of file diff --git a/room-booking.yaml b/room-booking.yaml new file mode 100644 index 0000000..009b648 --- /dev/null +++ b/room-booking.yaml @@ -0,0 +1,755 @@ +"antrag, klausur": &antrag-klausur-node + viewers: + display-label: + fallback: "Raumbuchungsantrag (Klausurraum und Prüfungstermin) angelegt" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: + - &pruefungsamt + tag: authorized + authorized: { "dnf-terms": [[{"tag": "variable", "var": "exam-office"}]] } + - &zugriffspersonen + tag: payload-reference + payload-label: "zugriffspersonen" + payload-view: &payload-view-klausur + "zugriffspersonen": &zugriffspersonen-payload + viewers: &view-alle + - *pruefungsamt + - *zugriffspersonen + - {"tag": "initiator"} + display-label: + fallback: "Zugriffspersonen" + fallback-lang: de-de-formal + translations: + en-eu: "" + "kommunikation": &kommunikation-payload + viewers: *view-alle + display-label: + fallback: "Kommunikation" + fallback-lang: de-de-formal + translations: + en-eu: "" + "personenzahl": &personenzahl-payload + viewers: *view-alle + display-label: + fallback: "Personenanzahl" + fallback-lang: de-de-formal + translations: + en-eu: "" + "titel": &titel-payload + viewers: *view-alle + display-label: + fallback: "Veranstaltungstitel" + fallback-lang: de-de-formal + translations: + en-eu: "" + "pruefungstyp": &pruefungstyp-payload + viewers: *view-alle + display-label: + fallback: "Prüfungstyp" + fallback-lang: de-de-formal + translations: + en-eu: "" + "wunschtermin": &wunschtermin-payload + viewers: *view-alle + display-label: + fallback: "Wunschtermin" + fallback-lang: de-de-formal + translations: + en-eu: "" + "wunschzeitraum": &wunschzeitraum-payload + viewers: *view-alle + display-label: + fallback: "Wunschzeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + "ausweichzeitraum": &ausweichzeitraum-payload + viewers: *view-alle + display-label: + fallback: "Ausweichzeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + "samstagstermin": &samstagstermin-payload + viewers: *view-alle + display-label: + fallback: "Samstagstermin" + fallback-lang: de-de-formal + translations: + en-eu: "" + "buchungszeitraum": &buchungszeitraum-payload + viewers: *view-alle + display-label: + fallback: "Buchungszeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + "raum": &raum-payload + viewers: *view-alle + display-label: + fallback: "Raum" + fallback-lang: de-de-formal + translations: + en-eu: "" + "zeit": &zeit-payload + viewers: *view-alle + display-label: + fallback: "Zeit" + fallback-lang: de-de-formal + translations: + en-eu: "" + final: false + messages: [] + edges: + "anlegen, pa, klausur": &anlegen-pa-klausur-edge + display-label: + fallback: "Raumbuchungsantrag (Klausurraum und Prüfungstermin) anlegen (als Prüfungsamt)" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: initial + actors: + - *pruefungsamt + view-actor: *view-alle + form: &klausur-pa-form + "zugriffspersonen": &zugriffspersonen-form + - "1": &zugriffspersonen-field + tag: multiple + label: + fallback: "Zugriffspersonen" + fallback-lang: de-de-formal + translations: + en-eu: "”" + tooltip: null + default: null + min: 1 + range: null + sub: + tag: user + label: + fallback: "Weitere Zugriffspersonen" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: null + default: null + optional: false + "kommunikation": &kommunikation-form + - "2": &kommunikation-field + tag: text + large: true + label: + fallback: "Kommunikation" + fallback-lang: de-de-formal + translations: + en-eu: "Communication" + tooltip: + fallback: "Einsehbar für alle Beteiligten" + fallback-lang: de-de-formal + translations: + en-eu: "Visible for all parties involved" + default: null + optional: true + "personenzahl": &personenzahl-form + - "3": &personenzahl-field + tag: text + label: + fallback: "Personenanzahl" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: false + "titel": &titel-form + - "4": &titel-field + tag: text + label: + fallback: "Veranstaltungstitel" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "Titel der Veranstaltung für die Prüfungsübersichtliste" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: false + "raum": &raum-form + - "5": &raum-field + tag: text + label: + fallback: "Raum" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: true + "zeit": &zeit-form + - "6": &zeit-field + tag: text + label: + fallback: "Zeit" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: true + "anlegen, zugriffspersonen, klausur": &anlegen-zugriffspersonen-klausur-edge + display-label: + fallback: "Raumbuchungsantrag (Klausurraum und Prüfungstermin) anlegen (als Dozent:in)" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: initial + actors: + - &lecturer + tag: authorized + authorized: { "dnf-terms": [[{"tag": "variable", "var": "lecturer" }]] } + view-actor: *view-alle + form: &klausur-zugriffspersonen-initial-form + "zugriffspersonen": &zugriffspersonen-initial-form + - "1": + tag: capture-user + - "1.1": + tag: multiple + label: + fallback: "Zugriffspersonen" + fallback-lang: de-de-formal + translations: + en-eu: "”" + tooltip: null + default: null + min: 0 + range: null + sub: + tag: user + label: + fallback: "Weitere Zugriffspersonen" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: null + default: null + optional: false + "kommunikation": *kommunikation-form + "personenzahl": *personenzahl-form + "titel": *titel-form + "pruefungstyp": &pruefungstyp-form + - "5": &pruefungstyp-field + tag: text + label: + fallback: "Prüfungstyp" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: false + presets: + - text: "pruefung" + label: + fallback: "Prüfung" + fallback-lang: de-de-formal + translations: + en-eu: "" + - text: "nachpruefung" + label: + fallback: "Nachprüfung" + fallback-lang: de-de-formal + translations: + en-eu: "" + - text: "anderes" + label: + fallback: "Anderes" + fallback-lang: de-de-formal + translations: + en-eu: "" + "wunschtermin": &wunschtermin-form + - "6": &wunschtermin-field + tag: day + max-past: 240 # about 8 months + max-future: 240 # about 8 months + label: + fallback: "Wunschtermin Datum" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: null + default: null + optional: true + "wunschzeitraum": &wunschzeitraum-form + - "7": &-wunschzeitraumfield + tag: text + large: true + label: + fallback: "Wunschzeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: false + "ausweichzeitraum": &ausweichzeitraum-form + - "8": &ausweichzeitraum-field + tag: text + large: true + label: + fallback: "Ausweichzeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "Akzeptabler Ausweichzeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: false + "samstagstermin": &samstagstermin-form + - "9": &samstagstermin-field + tag: text + label: + fallback: "Samstagstermin" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: false + presets: + - text: "not-ok" + label: + fallback: "kein Samstagstermin" + fallback-lang: de-de-formal + translations: + en-eu: "" + - text: "ok" + label: + fallback: "Samstagstermin möglich" + fallback-lang: de-de-formal + translations: + en-eu: "" + "buchungszeitraum": &buchungszeitraum-form + - "10": &buchungszeitraum-field + tag: text + large: true + label: + fallback: "Buchungszeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: true + "anpassen, antrag, klausur, pa": &anpassen-pa-klausur-edge + display-label: + fallback: "Raumbuchungsinformationen anpassen (als Prüfungsamt)" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, klausur" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *klausur-pa-form + "anpassen, antrag, klausur, zugriffspersonen": &anpassen-zugriffspersonen-klausur-edge + display-label: + fallback: "Raumbuchungsinformationen anpassen (als Dozent:in)" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, klausur" + actors: + - *zugriffspersonen + view-actor: *view-alle + form: &klausur-zugriffspersonen-form + <<: *klausur-zugriffspersonen-initial-form + "zugriffspersonen": *zugriffspersonen-form +"geplant, klausur": &geplant-klausur-node + viewers: + display-label: + fallback: "Raumbuchungsplanung (Klausurraum und Prüfungstermin)" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-klausur + final: false + edges: + "planen, klausur": &planen-klausur-edge + display-label: + fallback: "Raumbuchungsplanung einleiten" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, klausur" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *klausur-pa-form + "anpassen, geplant, klausur, pa": + <<: *anpassen-pa-klausur-edge + source: "geplant, klausur" + "anpassen, geplant, klausur, zugriffspersonen": + <<: *anpassen-zugriffspersonen-klausur-edge + source: "geplant, klausur" +"gebucht, klausur": &gebucht-klausur-node + viewers: + display-label: + fallback: "Raum (Klausurraum und Prüfungstermin) gebucht" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-klausur + final: false + edges: + "buchen, klausur": &buchen-klausur-edge + display-label: + fallback: "Raum buchen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "geplant, klausur" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *klausur-pa-form + "anpassen, gebucht, klausur, pa": + <<: *anpassen-pa-klausur-edge + source: "gebucht, klausur" + "anpassen, gebucht, klausur, zugriffspersonen": + <<: *anpassen-zugriffspersonen-klausur-edge + source: "gebucht, klausur" +"fertig, klausur": &fertig-klausur-node + viewers: + display-label: + fallback: "Raumbuchung (Klausurraum und Prüfungstermin) abgeschlossen" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-klausur + final: ok + edges: + "abschliessen, antrag, klausur": &abschliessen-edge + display-label: + fallback: "Raumbuchung abschließen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, klausur" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *klausur-pa-form + "abschliessen, geplant, klausur": + <<: *abschliessen-edge + source: "geplant, klausur" + "abschliessen, gebucht, klausur": + <<: *abschliessen-edge + source: "gebucht, klausur" +"abgebrochen, klausur": &abgebrochen-node + viewers: + display-label: + fallback: "Raumbuchung (Klausurraum und Prüfungstermin) agebrochen" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-klausur + final: not-ok + edges: + "abbrechen, antrag, klausur": &abbrechen-edge + display-label: + fallback: "Raumbuchung abbrechen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, klausur" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *klausur-pa-form + "abbrechen, geplant, klausur": + <<: *abbrechen-edge + source: "geplant, klausur" + "abbrechen, gebucht, klausur": + <<: *abbrechen-edge + source: "gebucht, klausur" + +# Einzelraumbuchung: +"antrag, einzelraum": &antrag-einzelraum-node + viewers: + display-label: + fallback: "Raumbuchungsantrag (Einzelraumbuchung) angelegt" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: &payload-view-einzelraum + "zugriffspersonen": *zugriffspersonen-payload + "kommunikation": *kommunikation-payload + "zeitraum": &zeitraum-payload + viewers: *view-alle + display-label: + fallback: "Zeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + "raumwunsch": &raumwunsch-payload + viewers: *view-alle + display-label: + fallback: "Raumwunsch" + fallback-lang: de-de-formal + translations: + en-eu: "" + "personenzahl": *personenzahl-payload + "raum": *raum-payload + "zeit": *zeit-payload + final: false + edges: + "anlegen, pa, einzelraum": &anlegen-pa-einzelraum-edge + display-label: + fallback: "Raumbuchungsantrag (Einzelraumbuchung) anlegen (als Prüfungsamt)" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: initial + actors: + - *pruefungsamt + view-actor: *view-alle + form: &einzelraum-pa-form + "zugriffspersonen": *zugriffspersonen-form + "kommunikation": *kommunikation-form + "zeitraum": &zeitraum-form + - "3": &zeitraum-field + tag: text + label: + fallback: "Zeitraum" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: true + "raum": *raum-form + "zeit": *zeit-form + "anlegen, zugriffspersonen, einzelraum": &anlegen-zugriffspersonen-einzelraum-edge + display-label: + fallback: "Raumbuchungsantrag (Einzelraumbuchung) anlegen (als Dozent:in)" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: initial + actors: + - *lecturer + view-actor: *view-alle + form: &einzelraum-zugriffspersonen-initial-form + "zugriffspersonen": *zugriffspersonen-initial-form + "kommunikation": *kommunikation-form + "zeitraum": *zeitraum-form + "raumwunsch": &raumwunsch-form + - "4": &raumwunsch-field + tag: text + label: + fallback: "Raumwunsch" + fallback-lang: de-de-formal + translations: + en-eu: "" + tooltip: + fallback: "" + fallback-lang: de-de-formal + translations: + en-eu: "" + default: null + optional: true + "personenzahl": + - "5": *personenzahl-field + "anpassen, antrag, einzelraum, pa": &anpassen-pa-einzelraum-edge + display-label: + fallback: "Raumbuchungsinformationen anpassen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, einzelraum" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *einzelraum-pa-form + "anpassen, antrag, einzelraum, zugriffspersonen": &anpassen-zugriffspersonen-einzelraum-edge + display-label: + fallback: "Raumbuchungsinformationen anpassen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, einzelraum" + actors: + - *zugriffspersonen + view-actor: *view-alle + form: &einzelraum-zugriffspersonen-form + <<: *einzelraum-zugriffspersonen-initial-form + "zugriffspersonen": *zugriffspersonen-form +"geplant, einzelraum": &geplant-einzelraum-node + viewers: + display-label: + fallback: "Raumbuchungsplanung (Einzelraumbuchung)" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-einzelraum + final: false + edges: + "planen, einzelraum": &planen-einzelraum-edge + display-label: + fallback: "Raumbuchungsplanung einleiten" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, einzelraum" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *einzelraum-pa-form + "anpassen, geplant, einzelraum, pa": + <<: *anpassen-pa-einzelraum-edge + source: "geplant, einzelraum" + "anpassen, geplant, einzelraum, zugriffspersonen": + <<: *anpassen-zugriffspersonen-einzelraum-edge + source: "geplant, einzelraum" +"gebucht, einzelraum": &gebucht-einzelraum-node + viewers: + display-label: + fallback: "Raum (Einzelraumbuchung) gebucht" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-einzelraum + final: false + messages: [] + edges: + "buchen, einzelraum": &buchen-einzelraum-edge + display-label: + fallback: "Raum buchen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "geplant, einzelraum" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *einzelraum-pa-form + "anpassen, gebucht, einzelraum, pa": + <<: *anpassen-pa-einzelraum-edge + source: "gebucht, einzelraum" + "anpassen, gebucht, einzelraum, zugriffspersonen": + <<: *anpassen-zugriffspersonen-einzelraum-edge + source: "gebucht, einzelraum" +"fertig, einzelraum": &fertig-einzelraum-node + viewers: + display-label: + fallback: "Raumbuchung (Einzelraumbuchung) abgeschlossen" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-einzelraum + final: ok + edges: + "abschliessen, antrag, einzelraum": &abschliessen-einzelraum-edge + display-label: + fallback: "Raumbuchung abschließen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, einzelraum" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *einzelraum-pa-form + "abschliessen, geplant, einzelraum": + <<: *abschliessen-einzelraum-edge + source: "geplant, einzelraum" + "abschliessen, gebucht, einzelraum": + <<: *abschliessen-einzelraum-edge + source: "gebucht, einzelraum" +"abgebrochen, einzelraum": &abgebrochen-einzelraum-node + viewers: + display-label: + fallback: "Raumbuchung (Einzelraumbuchung) abgebrochen" + fallback-lang: de-de-formal + translations: + en-eu: "" + viewers: *view-alle + payload-view: *payload-view-einzelraum + final: not-ok + edges: + "abbrechen, antrag, einzelraum": &abbrechen-einzelraum-edge + display-label: + fallback: "Raumbuchungsplanung abbrechen" + fallback-lang: de-de-formal + translations: + en-eu: "" + mode: manual + source: "antrag, einzelraum" + actors: + - *pruefungsamt + view-actor: *view-alle + form: *einzelraum-pa-form + "abbrechen, geplant, einzelraum": + <<: *abbrechen-einzelraum-edge + source: "geplant, einzelraum" + "abbrechen, gebucht, einzelraum": + <<: *abbrechen-einzelraum-edge + source: "gebucht, einzelraum" \ No newline at end of file