diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..f19355bde
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "testdata/workflows"]
+ path = testdata/workflows
+ url = gitlab2.rz.ifi.lmu.de:uni2work/workflows
diff --git a/test/Database/Fill.hs b/test/Database/Fill.hs
index f784485d6..9ddd60ea7 100644
--- a/test/Database/Fill.hs
+++ b/test/Database/Fill.hs
@@ -1333,7 +1333,7 @@ fillDb = do
displayLinterIssue = liftIO . hPutStrLn stderr . displayException
handleSql displayLinterIssue $ do
- workflowDefinitionGraph <- Yaml.decodeFileThrow $ testdataDir > "theses.yaml"
+ workflowDefinitionGraph <- Yaml.decodeFileThrow $ testdataDir > "workflows" > "theses.yaml"
for_ (lintWorkflowGraph workflowDefinitionGraph) $ mapM_ throwM
let
thesesWorkflowDef = WorkflowDefinition{..}
@@ -1369,7 +1369,7 @@ fillDb = do
}
handleSql displayLinterIssue $ do
- workflowDefinitionGraph <- Yaml.decodeFileThrow $ testdataDir > "recognitions-ifi.yaml"
+ workflowDefinitionGraph <- Yaml.decodeFileThrow $ testdataDir > "workflows" > "recognitions-ifi.yaml"
for_ (lintWorkflowGraph workflowDefinitionGraph) $ mapM_ throwM
let
recognitionsWorkflowDef = WorkflowDefinition{..}
diff --git a/testdata/recognitions-ifi.yaml b/testdata/recognitions-ifi.yaml
deleted file mode 100644
index 2d8bff6ca..000000000
--- a/testdata/recognitions-ifi.yaml
+++ /dev/null
@@ -1,1356 +0,0 @@
-"init":
- messages:
- - viewers:
- - &student
- tag: payload-reference
- payload-label: "student"
- status: info
- content:
- fallback: "Hier können Sie Standardanerkennungen beantragen. Komplexere Anerkennungen, die hier nicht abgedeckt sind, bitte per Mail oder in der Sprechstunde beantragen."
- fallback-lang: de-de-formal
- translations:
- en-eu: "Apply here for standard recognitions. For complex recognitions that cannot be handled here, please send an e-mail or apply in the consultation hours."
- edges:
- "antrag freischalten":
- display-label:
- fallback: "Einzelnen Anerkennungsantrag freischalten"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Unlock for single recognition application"
- mode: initial
- actors:
- - &pruefungsamt
- tag: authorized
- authorized: { "dnf-terms": [[{"tag": "variable", "var": "exam-office"}]] }
- view-actor:
- - *pruefungsamt
- form:
- "student":
- - tag: user
- label:
- fallback: "Student"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Student"
- tooltip: null
- default: null
- optional: false
- viewers:
- display-label:
- fallback: "Antrag freigeschaltet"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application unlocked"
- viewers:
- - *pruefungsamt
- - *student
- payload-view: &payload-view-init
- "student":
- viewers:
- - *pruefungsamt
- display-label:
- fallback: "Student"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Student"
- "semester":
- viewers:
- - *pruefungsamt
- display-label:
- fallback: "Semester"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Term"
-
-"itkompetenz antrag, student":
- messages:
- - <<: &message-antrag-student
- viewers:
- - *student
- status: warning
- content:
- fallback: "Sie können Ihren Antrag aktuell beliebig editieren. Sie müssen ihn jedoch „zur Begutachtung einreichen“ bevor er von der Prüfungsverwaltung bearbeitet wird. Danach können Sie ihn erst wieder editieren, falls die Prüfungsverwaltung den Antrag an Sie zurück gibt."
- fallback-lang: de-de-formal
- translations:
- en-eu: "You may edit your application as often as you want. To have your application processed, however, you will have to “submit [it] for evaluation”. Afterwards you will only be able to edit your application if the exam office “hands it back” to you."
- edges:
- "itkompetenz beantragen":
- source: "init"
- <<: &itkompetenz-beantragen
- mode: manual
- messages:
- - viewers:
- - *student
- - tag: initiator
- status: info
- content:
- fallback: "Anerkennung einer Werkstudententätigkeit als IT-Kompetenz. Hierfür müssen sie mindestens 90 Stunden einer Tätigkeit mit IT-Schwerpunkt vorweisen. Diese Anerkennung steht nur Studenten des Bachelor Informatik (Hauputfach) zur Verfügung."
- fallback-lang: de-de-formal
- translations:
- en-eu: "Recognition of student employment as an „IT-Kompetenz“. Total work time must be at least 90 hours in an occupation with focus on IT-work. This recognition is only possible for students of Informatics (main studies)."
- - &message-antrag-bescheidinhalt
- viewers:
- - *student
- - tag: initiator
- status: info
- content:
- fallback: >-
- Sie benötigen einen Bescheid von Ihrem Arbeitgeber/Verein/..., aus dem folgende Dinge hervorgehen
-
-
- - Beschreibung der Aufgaben und durchgeführte Tätigkeit
- - ungefähre Gesamtzahl der geleisteten Arbeitsstunden (also entweder direkt in h angegeben, oder Wochenarbeitszeit und Zeitraum)
- - Ungefährer Zeitraum der Tätigkeitsdurchführung, im Idealfall mit dem genauen Datum des Tätigkeitsendes
-
- fallback-lang: de-de-formal
- translations:
- en-eu: >-
- You need to hand in a notification of your employer/club/... that includes at least the following information
-
-
- - Description of the job duties and fullfilled tasks
- - Rough number of performed work hours (may be given as total number of hours or work time per week and duration of occupation)
- - Rough duration of the occupation, ideally the precise date of end of occupation
-
- display-label:
- fallback: "Eine Tätigkeit als IT-Kompetenz anerkennen (nur Informatik-Hauptfach Bachelor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Have an activity recognized as an „IT-Kompetenz“ (only for informatics bachelor as a primary field)"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: &itkompetenz-form
- "titel": &titel-form
- - "1": &titel-field
- tag: text
- label:
- fallback: "Titelvorschlag für Tätigkeit"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Suggested title of activity (in german)"
- tooltip:
- fallback: "Die durchgeführte Tätigkeit möglichst knapp Beschreiben, sollte aber den Namen der Organisation enthalten, an der die Tätigkeit stattfand"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Short description of performed activity. Should contain the name of the organisation for which this activity was performed."
- default: null
- optional: false
- "titel, englisch": &entitel-form-optional
- - "2": &entitel-field-optional
- tag: text
- label:
- fallback: "Titelvorschlag für Tätigkeit, auf Englisch"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Suggested title of activity (in english)"
- tooltip: null
- default: null
- optional: true
- "beleg": &beleg-form
- - "3": &beleg-field
- tag: file
- label:
- fallback: "Bescheid über durchgeführte Tätigkeit"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation certifying successfull completion of activity"
- tooltip: null
- optional: false
- config:
- unpack-zips:
- default: false
- force: true
- multiple: false
- all-empty-ok: false
- max-file-size: 5242880
- "notizen": ¬izen-form-optional
- - "4":
- tag: text
- large: true
- label:
- fallback: "Notizen / Anmerkungen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Notes / Comments"
- tooltip:
- fallback: "Für zusätzliche Anmerkungen (nur bei Bedarf)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Additional comments (only when needed)"
- default: null
- optional: true
- "itkompetenz selbst beantragen":
- <<: *itkompetenz-beantragen
- mode: initial
- form:
- <<: *itkompetenz-form
- "student":
- - "0":
- tag: capture-user
- actors:
- - &any-student
- tag: authorized
- authorized: { "dnf-terms": [[{"tag": "variable", "var": "student"}]] }
- "itkompetenz editieren":
- mode: manual
- display-label:
- fallback: "Antrag bearbeiten"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Edit application"
- source: "itkompetenz antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: *itkompetenz-form
- "itkompetenz antrag zurueck":
- mode: manual
- display-label:
- fallback: "Antrag an Student zurück geben"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Hand application back to student"
- source: "itkompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: &itkompetenz-notizen-form
- "titel": &titel-form-optional
- - "1":
- <<: *titel-field
- optional: true
- "titel, englisch": *entitel-form-optional
- "notizen": ¬izen-form
- - "4":
- tag: text
- large: true
- label:
- fallback: "Notizen / Anmerkungen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Notes / Comments"
- tooltip:
- fallback: "Zur Kommunikation mit dem Studenten"
- fallback-lang: de-de-formal
- translations:
- en-eu: "For communication with the student"
- default: null
- optional: false
- <<: &internenotizen-formblock-optional
- "internenotizen": &internenotizen-form-optional
- - "5": &internenotizen-field-optional
- tag: text
- large: true
- label:
- fallback: "Interne Notizen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Internal notes"
- tooltip: null
- default: null
- optional: true
- viewers:
- display-label:
- fallback: "Antrag noch unfertig (IT-Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application not finished (IT-Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: &payload-view-itkompetenz-notizen
- <<: &payload-view-itkompetenz
- <<: *payload-view-init
- "titel":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Titel"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Title, german"
- "titel, englisch":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Titel, Englisch"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Title, english"
- "beleg":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Beleg"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation"
- <<: &payload-view-notizen
- "notizen":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Notizen / Anmerkungen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Notes / Comments"
- <<: &payload-view-internenotizen
- "internenotizen":
- viewers:
- - *pruefungsamt
- display-label:
- fallback: "Interne Notizen (versteckt vor Antragsteller)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Comments (hidden from the applicant)"
-"itkompetenz antrag, pa":
- viewers:
- display-label:
- fallback: "Antrag in Begutachtung (IT-Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application being evaluated (IT-Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- edges:
- "itkompetenz einreichen":
- mode: manual
- display-label:
- fallback: "Antrag zur Begutachtung einreichen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Submit application for evaluation"
- source: "itkompetenz antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- "interne notizen anpassen":
- <<: &internenotizen-kante
- mode: manual
- display-label:
- fallback: "Interne Notizen anpassen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Modify internal notes"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: &internenotizen-formblock
- "internenotizen": &internenotizen-form
- - "1": &internenotizen-field
- <<: *internenotizen-field-optional
- optional: false
- source: "itkompetenz antrag, pa"
- payload-view: *payload-view-itkompetenz-notizen
-"itkompetenz ok":
- final: ok
- messages: &message-ok
- - viewers:
- - *student
- status: info
- content:
- fallback: "Ihr Anerkennungsantrag ist akzeptiert. Sie wird in wenigen Wochen auf Ihrem Kontoauszug erscheinen, ohne dass Sie weiter etwas unternehmen müssen. In wirklich dringenden Fällen (und bitte nur dann) können Sie per Mail an Stephan Barth beantragen, dass die Leisung schneller auf Ihrem Kontoauszug auftaucht."
- fallback-lang: de-de-formal
- translations:
- en-eu: "Your recognition application has been accepted. It will appear in a few weeks on your transcript of records. No further action is required. In urgend cases (please: Only then) you may send a mail to Stephan Barth to apply for fast inclusion into the transcript of records."
- edges:
- "itkompetenz akzeptieren":
- mode: manual
- display-label:
- fallback: "Antrag genehmigen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Accept application"
- source: "itkompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "titel": *titel-form
- "titel, englisch": *entitel-form-optional
- "semester": &semester-form
- - "3":
- tag: text
- label:
- fallback: "Semester"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Term"
- tooltip: null
- default: null
- optional: false
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag genehmigt (IT-Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application accepted (IT-Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view:
- <<: *payload-view-itkompetenz
- <<: *payload-view-internenotizen
-"itkompetenz abgelehnt":
- final: not-ok
- edges:
- "itkompetenz ablehnen":
- mode: manual
- display-label:
- fallback: "Antrag ablehnen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Reject application"
- source: "itkompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag abgelehnt (IT-Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application rejected (IT-Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: *payload-view-itkompetenz-notizen
-
-"medienkompetenz antrag, student":
- messages:
- - *message-antrag-student
- edges:
- "medienkompetenz beantragen":
- source: "init"
- <<: &medienkompetenz-beantragen
- mode: manual
- messages:
- - viewers:
- - *student
- - tag: initiator
- status: info
- content:
- fallback: "Anerkennung einer Werkstudententätigkeit als Medienkompetenz. Hierfür müssen sie mindestens 90 Stunden einer Tätigkeit mit Medienschwerpunkt vorweisen. Diese Anerkennung steht nur Studenten des Bachelor Medieninformatik (Hauputfach) zur Verfügung."
- fallback-lang: de-de-formal
- translations:
- en-eu: "Recognition of student employment as a „Medienkompetenz“. Total work time must be at least 90 hours in an occupation with focus on IT-work. This recognition is only possible for students of Mediainformatics (main studies)."
- - *message-antrag-bescheidinhalt
- display-label:
- fallback: "Eine Tätigkeit als Medienkompetenz anerkennen (nur Medieninformatik-Hauptfach Bachelor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Have an activity recognized as a „Medienkompetenz“ (only for media-informatics bachelor as a primary field)"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: &medienkompetenz-form
- "titel": *titel-form
- "titel, englisch": *entitel-form-optional
- "beleg": *beleg-form
- "notizen": *notizen-form-optional
- "medienkompetenz selbst beantragen":
- <<: *medienkompetenz-beantragen
- mode: initial
- form:
- <<: *medienkompetenz-form
- "student":
- - "0":
- tag: capture-user
- actors:
- - *any-student
- "medienkompetenz editieren":
- mode: manual
- display-label:
- fallback: "Antrag bearbeiten"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Edit application"
- source: "medienkompetenz antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: *medienkompetenz-form
- "medienkompetenz antrag zurueck":
- mode: manual
- display-label:
- fallback: "Antrag an Student zurück geben"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Hand application back to student"
- source: "medienkompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: &medienkompetenz-notizen-form
- "titel": *titel-form-optional
- "titel, englisch": *entitel-form-optional
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag noch unfertig (Medienkompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application not finished (Medienkompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: &payload-view-medienkompetenz-notizen
- <<: &payload-view-medienkompetenz
- <<: *payload-view-init
- "titel":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Titel"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Title (in german)"
- "titel, englisch":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Titel, Englisch"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Title (in english)"
- "beleg":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Beleg"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation"
- <<: *payload-view-notizen
-"medienkompetenz antrag, pa":
- viewers:
- display-label:
- fallback: "Antrag in Begutachtung (Medienkompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application being evaluated (Medienkompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- edges:
- "medienkompetenz einreichen":
- mode: manual
- display-label:
- fallback: "Antrag zur Begutachtung einreichen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Submit application for evaluation"
- source: "medienkompetenz antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- "interne notizen anpassen":
- <<: *internenotizen-kante
- source: "medienkompetenz antrag, pa"
- payload-view: *payload-view-medienkompetenz-notizen
-"medienkompetenz ok":
- final: ok
- messages: *message-ok
- edges:
- "medienkompetenz akzeptieren":
- mode: manual
- display-label:
- fallback: "Antrag genehmigen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Accept application"
- source: "medienkompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "titel": *titel-form
- "titel, englisch": *entitel-form-optional
- "semester": *semester-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag genehmigt (Medienkompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application accepted (Medienkompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view:
- <<: *payload-view-medienkompetenz
- <<: *payload-view-internenotizen
-"medienkompetenz abgelehnt":
- final: not-ok
- edges:
- "medienkompetenz ablehnen":
- mode: manual
- display-label:
- fallback: "Antrag ablehnen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Reject application"
- source: "medienkompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag abgelehnt (Medienkompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application rejected (Medienkompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: *payload-view-medienkompetenz-notizen
-
-"tutor antrag, student":
- messages:
- - *message-antrag-student
- edges:
- "tutor beantragen":
- source: "init"
- <<: &tutor-beantragen
- mode: manual
- messages:
- - viewers:
- - *student
- - tag: initiator
- status: info
- content:
- fallback: "Anerkennung einer Tutortätigkeit als persönliche und soziale Kompetenz. Hierfür müssen sie ein Tutorium mit Studentenkontakt geleitet haben (reine Korrektur zählt nicht; Tutorgruppen sowohl zu Vorlesung, wie auch zu Praktikum zählen). Geben Sie dazu bitte einen Link zu der entsprechenden Lehrveranstaltungsseite (im Idealfall die Uni2work-Seite) an aus der hervorgeht, dass Sie diese Tätigkeit durchgeführt haben. Statt einer Webseite können Sie alternativ einen formlosen Bescheid hochladen, in dem Ihnen diese Tätigkeit bestätigt wird."
- fallback-lang: de-de-formal
- translations:
- en-eu: "Recognition of tutor occupation as a „soziale und persönliche Kompetenz“. You have to have lead a tutorial with student contact (corrector alone is not sufficient; tutorial may be for lectures as well as for practicals). Please send a link to the regarding web page of the course (ideally: Uni2work page of the course) that confirms that you have worked as tutor for this course. Alternatively send a confirmation instead of a link."
- display-label:
- fallback: "Tutortätigkeit als soziale und persönliche Kompetenz anerkennen lassen (nur (Medien-)Informatik Bachelor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Have activity as a tutor recognized as a „soziale und persönliche Kompetenz“ (only for (media-)informatis bachelor as a primary field)"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: &tutor-form
- "institut": &institut-form
- - "1": &institut-field
- tag: text
- label:
- fallback: "Institut"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Institute"
- tooltip:
- fallback: "An welchem Institut der Universität wurde die Tutortätigkeit ausgeübt?"
- fallback-lang: de-de-formal
- translations:
- en-eu: "At which university institute was the tutor position held?"
- default: null
- optional: false
- "tutorbeleg": &tutorbeleg-form
- - "2": &tutorbeleg-link-field
- tag: text
- label:
- fallback: "Veranstaltungswebseite"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Course website"
- tooltip:
- fallback: "Link zu einer offiziellen Webseite der Veranstaltung, die Sie als Tutor führt (z.B. in Uni2work)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Link to an official course page, which lists you as a tutor (i.e. in Uni2work)"
- optional: false
- - "3": &tutorbeleg-file-field
- <<: *beleg-field
- label:
- fallback: "Bestätigung"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation"
- tooltip:
- fallback: "Bestätigung der durchgeführten Tutortätigkeit"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation verifying the position as tutor"
- optional: false
- "notizen": *notizen-form-optional
- "tutor selbst beantragen":
- <<: *tutor-beantragen
- mode: initial
- form:
- <<: *tutor-form
- "student":
- - "0":
- tag: capture-user
- actors:
- - *any-student
- "tutor editieren":
- mode: manual
- display-label:
- fallback: "Antrag bearbeiten"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Edit application"
- source: "tutor antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: *tutor-form
- "tutor antrag zurueck":
- mode: manual
- display-label:
- fallback: "Antrag an Student zurück geben"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Hand application back to student"
- source: "tutor antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: &tutor-notizen-form
- "institut": &institut-form-optional
- - "1":
- <<: *institut-field
- optional: true
- "tutorbeleg": &tutorbeleg-form-optional
- - "2":
- <<: *tutorbeleg-link-field
- optional: true
- - "3":
- <<: *tutorbeleg-file-field
- optional: true
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag noch unfertig (Tutor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application not finished (Tutor)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: &payload-view-tutor-notizen
- <<: &payload-view-tutor
- <<: *payload-view-init
- "institut":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Institut"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Institute"
- "tutorbeleg":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Beleg"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation"
- <<: *payload-view-notizen
-"tutor antrag, pa":
- viewers:
- display-label:
- fallback: "Antrag in Begutachtung (Tutor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application being evaluated (Tutor)"
- viewers:
- - *student
- - *pruefungsamt
- edges:
- "tutor einreichen":
- mode: manual
- display-label:
- fallback: "Antrag zur Begutachtung einreichen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Submit application for evaluation"
- source: "tutor antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- "interne notizen anpassen":
- <<: *internenotizen-kante
- source: "tutor antrag, pa"
- payload-view: *payload-view-tutor-notizen
-"tutor ok":
- final: ok
- messages: *message-ok
- edges:
- "tutor akzeptieren":
- mode: manual
- display-label:
- fallback: "Antrag genehmigen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Accept application"
- source: "tutor antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "institut": *institut-form
- "semester": *semester-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag genehmigt (Tutor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application accepted (Tutor)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view:
- <<: *payload-view-tutor
- <<: *payload-view-internenotizen
-"tutor abgelehnt":
- final: not-ok
- edges:
- "tutor ablehnen":
- mode: manual
- display-label:
- fallback: "Antrag ablehnen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Reject application"
- source: "tutor antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag abgelehnt (Tutor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application rejected (Tutor)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: *payload-view-tutor-notizen
-
-"sozialekompetenz antrag, student":
- messages:
- - *message-antrag-student
- edges:
- "sozialekompetenz beantragen":
- source: "init"
- <<: &sozialekompetenz-beantragen
- mode: manual
- messages:
- - viewers:
- - *student
- - tag: initiator
- status: info
- content:
- fallback: "Anerkennung einer Tätigkeit, bei der eine bestimmte leitende persönliche und soziale Kompetenz demonstriert wurde (z.B. das selbstständige Leiten einer Gruppe, eine eigenständige Sportlehrertätigkeit etc.) als persönliche und soziale Kompetenz. Hierfür müssen sie mindestens 90 Stunden einer entsprechenden Tätigkeit vorweisen. Diese Anerkennung steht nur Studenten des Bachelor Informatik und Medieninformatik (Hauputfach) zur Verfügung."
- fallback-lang: de-de-formal
- translations:
- en-eu: "Recognition of an occupation that demonstrates leading personel and social skills (such as autonomous guide of a group, autonomous work as sport teacher, etc.) as a „soziale und persönliche Kompetenz“. Total work time must be at least 90 hours in this occupation. This recognition is only possible for students of Informatics or Mediainformatics (main studies)."
- - *message-antrag-bescheidinhalt
- display-label:
- fallback: "Tätigkeit (nicht Tutortätigkeit) als soziale und persönliche Kompetenz anerkennen lassen (nur (Medien-)Informatik Bachelor)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Have an occupation (not as a tutor) recognized as a „soziale und persönliche Kompetenz“ (only for (media-)informatics bachelor as a primary field)"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: &sozialekompetenz-form
- "titel": *titel-form
- "titel, englisch": *entitel-form-optional
- "beleg": *beleg-form
- "notizen": *notizen-form-optional
- "sozialekompetenz selbst beantragen":
- <<: *sozialekompetenz-beantragen
- mode: initial
- form:
- <<: *sozialekompetenz-form
- "student":
- - "0":
- tag: capture-user
- actors:
- - *any-student
- "sozialekompetenz editieren":
- mode: manual
- display-label:
- fallback: "Antrag bearbeiten (Soziale Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Edit application (Soziale Kompetenz)"
- source: "sozialekompetenz antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: *sozialekompetenz-form
- "sozialekompetenz antrag zurueck":
- mode: manual
- display-label:
- fallback: "Antrag an Student zurück geben"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Hand application back to student"
- source: "sozialekompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: &sozialekompetenz-notizen-form
- "titel": *titel-form-optional
- "titel, englisch": *entitel-form-optional
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag noch unfertig (Soziale Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application not finished (Soziale Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: &payload-view-sozialekompetenz-notizen
- <<: &payload-view-sozialekompetenz
- <<: *payload-view-init
- "titel":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Titel"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Title (in german)"
- "titel, englisch":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Titel, Englisch"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Title (in english)"
- "beleg":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Beleg"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation"
- <<: *payload-view-notizen
-"sozialekompetenz antrag, pa":
- viewers:
- display-label:
- fallback: "Antrag in Begutachtung (Soziale Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application being evaluated (Soziale Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- edges:
- "sozialekompetenz einreichen":
- mode: manual
- display-label:
- fallback: "Antrag zur Begutachtung einreichen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Submit application for evaluation"
- source: "sozialekompetenz antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- "interne notizen anpassen":
- <<: *internenotizen-kante
- source: "sozialekompetenz antrag, pa"
- payload-view: *payload-view-sozialekompetenz-notizen
-"sozialekompetenz ok":
- final: ok
- messages: *message-ok
- edges:
- "sozialekompetenz akzeptieren":
- mode: manual
- display-label:
- fallback: "Antrag genehmigen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Accept application"
- source: "sozialekompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "titel": *titel-form
- "titel, englisch": *entitel-form-optional
- "semester": *semester-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label: "Antrag genehmigt (Soziale Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view:
- <<: *payload-view-sozialekompetenz
- <<: *payload-view-internenotizen
-"sozialekompetenz abgelehnt":
- final: not-ok
- edges:
- "sozialekompetenz ablehnen":
- mode: manual
- display-label:
- fallback: "Antrag ablehnen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Reject application"
- source: "sozialekompetenz antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag abgelehnt (Soziale Kompetenz)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application rejected (Soziale Kompetenz)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: *payload-view-sozialekompetenz-notizen
-
-"englisch antrag, student":
- messages:
- - *message-antrag-student
- edges:
- "englisch beantragen":
- source: "init"
- <<: &englisch-beantragen
- mode: manual
- messages:
- - viewers:
- - *student
- - tag: initiator
- status: info
- content:
- fallback: "Noteneintragung vom Ergebnis des Kurses „e-Xplore Technical English“ der HTWK Leipzig. Dazu müssen Sie die Seite der Bestätigung hochladen, welche die Note und das Datum enthält; wenn Sie sich unsicher sind, gerne auch beide Seiten."
- fallback-lang: de-de-formal
- translations:
- en-eu: "Inclusion of grades from the course „e-Xplore Technical English“ of the HTWK Leipzig. You have to send the page with confirmation, grade, and date. If in doubt, send both pages."
- display-label:
- fallback: "Note aus dem e-Xplore Technical Englisch Kurs melden"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Report grade for course “e-Xplore Technical English”"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: &englisch-form
- "note": ¬e-form
- - "1": ¬e-field
- tag: text
- label:
- fallback: "Note"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Grade"
- placeholder:
- fallback: "Note"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Grade"
- optional: false
- "datum": &datum-form
- - "2": &datum-field
- tag: day
- label:
- fallback: "Datum"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Date"
- tooltip:
- fallback: "„Date of issue“ auf dem Zertifikat"
- fallback-lang: de-de-formal
- translations:
- en-eu: "“Date of issue” on the certificate"
- optional: false
- "englischbeleg": &englischbeleg-form
- - "3": &englischbeleg-field
- tag: file
- label:
- fallback: "Dokument"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation"
- tooltip:
- fallback: "Mindestens die Seite mit Note und Datum"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Submit at least the page containing the grade and date"
- optional: false
- config:
- unpack-zips:
- default: true
- force: true
- multiple: true
- all-empty-ok: false
- max-file-size: 5242880
- "englisch selbst beantragen":
- <<: *englisch-beantragen
- mode: initial
- form:
- <<: *englisch-form
- "student":
- - "0":
- tag: capture-user
- actors:
- - *any-student
- "englisch editieren":
- mode: manual
- display-label:
- fallback: "Antrag bearbeiten"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Edit application"
- source: "englisch antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- form: *englisch-form
- "englisch antrag zurueck":
- mode: manual
- display-label:
- fallback: "Antrag an Student zurück geben"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Hand application back to student"
- source: "englisch antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: &englisch-notizen-form
- "note": ¬e-form-optional
- - "1":
- <<: *note-field
- optional: true
- "datum": &datum-form-optional
- - "2":
- <<: *datum-field
- optional: true
- "englischbeleg": &englischbeleg-form-optional
- - "3":
- <<: *englischbeleg-field
- optional: true
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag noch unfertig (Englisch)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application not finished (Englisch)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: &payload-view-englisch-notizen
- <<: &payload-view-englisch
- <<: *payload-view-init
- "note":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Note"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Grade"
- "datum":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Datum"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Date"
- "englischbeleg":
- viewers:
- - *student
- - tag: initiator
- - *pruefungsamt
- display-label:
- fallback: "Beleg"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Documentation"
- <<: *payload-view-notizen
-"englisch antrag, pa":
- viewers:
- display-label:
- fallback: "Antrag in Begutachtung (Englisch)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application being evaluated (Englisch)"
- viewers:
- - *student
- - *pruefungsamt
- edges:
- "englisch einreichen":
- mode: manual
- display-label:
- fallback: "Antrag zur Begutachtung einreichen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Submit application for evaluation"
- source: "englisch antrag, student"
- actors:
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- payload-view: *payload-view-englisch-notizen
-"englisch ok":
- final: ok
- messages: *message-ok
- edges:
- "englisch akzeptieren":
- mode: manual
- display-label:
- fallback: "Antrag genehmigen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Accept application"
- source: "englisch antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "note": *note-form
- "datum": *datum-form
- "semester": *semester-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag genehmigt (Englisch)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application accepted (Englisch)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view:
- <<: *payload-view-englisch
- <<: *payload-view-internenotizen
-"englisch abgelehnt":
- final: not-ok
- edges:
- "englisch ablehnen":
- mode: manual
- display-label:
- fallback: "Antrag ablehnen"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Reject application"
- source: "englisch antrag, pa"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "notizen": *notizen-form
- <<: *internenotizen-formblock-optional
- viewers:
- display-label:
- fallback: "Antrag abgelehnt (Englisch)"
- fallback-lang: de-de-formal
- translations:
- en-eu: "Application rejected (Englisch)"
- viewers:
- - *student
- - *pruefungsamt
- payload-view: *payload-view-englisch-notizen
diff --git a/testdata/theses.yaml b/testdata/theses.yaml
deleted file mode 100644
index deb02d3ca..000000000
--- a/testdata/theses.yaml
+++ /dev/null
@@ -1,683 +0,0 @@
-"antrag":
- viewers:
- display-label: "Antrag angelegt"
- viewers:
- - &pruefungsamt
- tag: authorized
- authorized: { "dnf-terms": [[{"tag": "variable", "var": "exam-office"}]] }
- - &hochschullehrer
- tag: payload-reference
- payload-label: "hochschullehrer"
- - &betreuer
- tag: payload-reference
- payload-label: "betreuer"
- - &student
- tag: payload-reference
- payload-label: "student"
- payload-view: &payload-view
- "hochschullehrer":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- - {"tag": "initiator"}
- display-label: "Verantwortliche Hochschullehrer"
- "betreuer":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- - {"tag": "initiator"}
- display-label: "Betreuer"
- "student":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- - {"tag": "initiator"}
- display-label: "Student"
- "anmeldetag":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- - {"tag": "initiator"}
- display-label: "Tag der Anmeldung"
- "sprache":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- - {"tag": "initiator"}
- display-label: "Sprache der Arbeit"
- "titel":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- - {"tag": "initiator"}
- display-label: "Titel, in Sprache der Arbeit"
- "titel, englisch":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- - {"tag": "initiator"}
- display-label: "Titel, Englisch"
- "abgabe":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- display-label: "Abgabe"
- "notizen":
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - {"tag": "initiator"}
- display-label: "Notizen"
- messages:
- - viewers:
- - *hochschullehrer
- - *betreuer
- restriction:
- dnf-terms:
- - - tag: negated
- var:
- tag: payload-filled
- payload-filled: "anmeldetag"
- status: info
- content: "Es muss zunächst „Anmeldetag“ eingetragen und der Antrag vom Student und von einem verantwortlichen Hochschullehrer bestätigt werden, damit der Antrag weiter von der Prüfungsverwaltung bearbeitet werden kann."
- - viewers:
- - *hochschullehrer
- - *betreuer
- restriction:
- dnf-terms:
- - - tag: variable
- var:
- tag: payload-filled
- payload-filled: "anmeldetag"
- status: info
- content: "Der Antrag muss zunächst noch vom Student und von einem verantwortlichen Hochschullehrer bestätigt werden, damit er von der Prüfungsverwaltung weiter bearbeitet werden kann."
- final: false
- edges:
- "antrag als pruefungsamt":
- mode: initial
- display-label: "Antrag anlegen (als Prüfungsverwaltung)"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: &antrag-forms-pruefungsamt
- "hochschullehrer": &hochschullehrer-form
- - "1":
- tag: multiple
- label: "Verantwortliche Hochschullehrer"
- tooltip: null
- default: null
- min: 1
- range: null
- sub:
- tag: user
- label: "Verantwortlicher Hochschullehrer"
- tooltip: null
- default: null
- optional: false
- "betreuer": &betreuer-form
- - "2":
- tag: multiple
- label: "Betreuer"
- tooltip: null
- default: null
- min: 0
- range: null
- sub:
- tag: user
- label: "Betreuer"
- tooltip: null
- default: null
- optional: false
- "student": &student-form
- - "3":
- tag: user
- label: "Student"
- tooltip: null
- default: null
- optional: false
- "anmeldetag": &anmeldetag-form-optional
- - "4": &anmeldetag-field-optional
- tag: day
- label: "Tag der Anmeldung"
- tooltip: null
- default: null
- optional: true
- "sprache": &sprache-form-optional
- - "5": &sprache-field-optional
- tag: text
- label: "Sprache der Arbeit"
- tooltip: null
- default: null
- optional: true
- "titel": &titel-form-optional
- - "6": &titel-field-optional
- tag: text
- label: "Titel, in Sprache der Arbeit"
- tooltip: null
- default: null
- optional: true
- "titel, englisch": &entitel-form-optional
- - "7": &entitel-field-optional
- tag: text
- label: "Titel, Englisch"
- tooltip: null
- default: null
- optional: true
- "aufgabenstellung": &aufgabenstellung-form
- - "8":
- tag: text
- large: true
- label: "Aufgabenstellung"
- tooltip: null
- default: null
- optional: true
- "notizen": ¬izen-form
- - "10":
- tag: text
- large: true
- label: "Notizen"
- tooltip: "Einsehbar für alle Beteiligten, außer den Studenten"
- default: null
- optional: true
- "korrektur als pruefungsamt": &korrektur-pruefungsamt
- mode: manual
- display-label: "Antrag anpassen"
- source: "antrag"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: *antrag-forms-pruefungsamt
- "korrektur als pruefungsamt, hochschullehrer":
- <<: *korrektur-pruefungsamt
- source: "antrag, hochschullehrer"
- "korrektur als pruefungsamt, student":
- <<: *korrektur-pruefungsamt
- source: "antrag, student"
- "korrektur als pruefungsamt, student&hochschullehrer":
- <<: *korrektur-pruefungsamt
- source: "antrag, student&hochschullehrer"
- "korrektur als pruefungsamt, student&hochschullehrer&anmeldetag":
- <<: *korrektur-pruefungsamt
- source: "antrag, student&hochschullehrer, anmeldetag"
- "antrag als hochschullehrer":
- mode: initial
- display-label: "Antrag anlegen (als verantwortlicher Hochschullehrer)"
- actors:
- - tag: authorized
- authorized: { "dnf-terms": [[{"tag": "variable", "var": "lecturer" }]] }
- view-actor: &view-actor-all
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- form: &antrag-forms-hochschullehrer
- "hochschullehrer":
- - "1":
- tag: capture-user
- - "1.1":
- tag: multiple
- label: "Zusätzliche verantwortliche Hochschullehrer"
- tooltip: null
- default: null
- min: 0
- range: null
- sub:
- tag: user
- label: "Verantwortlicher Hochschullehrer"
- tooltip: null
- default: null
- optional: false
- "betreuer": *betreuer-form
- "student": *student-form
- "anmeldetag": *anmeldetag-form-optional
- "sprache": *sprache-form-optional
- "titel": *titel-form-optional
- "titel, englisch": *entitel-form-optional
- "aufgabenstellung": *aufgabenstellung-form
- "notizen": *notizen-form
- "korrektur als hochschullehrer": &korrektur-hochschullehrer
- mode: manual
- display-label: "Antrag anpassen"
- source: "antrag"
- actors:
- - *hochschullehrer
- view-actor: *view-actor-all
- form: *antrag-forms-hochschullehrer
- "korrektur als hochschullehrer, student":
- <<: *korrektur-hochschullehrer
- source: "antrag, student"
- "antrag als betreuer":
- mode: initial
- display-label: "Antrag anlegen (als Betreuer)"
- actors:
- - tag: authorized
- authorized: { "dnf-terms": [[{"tag": "variable", "var": "lecturer" }]] }
- view-actor: *view-actor-all
- form: &antrag-forms-betreuer
- "betreuer":
- - "2":
- tag: capture-user
- - "2.1":
- tag: multiple
- label: "Zusätzliche Betreuer"
- tooltip: null
- default: null
- min: 0
- range: null
- sub:
- tag: user
- label: "Betreuer"
- tooltip: null
- default: null
- optional: false
- "hochschullehrer": *hochschullehrer-form
- "student": *student-form
- "anmeldetag": *anmeldetag-form-optional
- "sprache": *sprache-form-optional
- "titel": *titel-form-optional
- "titel, englisch": *entitel-form-optional
- "aufgabenstellung": *aufgabenstellung-form
- "notizen": *notizen-form
- "betreuer als hochschullehrer": &betreuer-hochschullehrer
- mode: manual
- display-label: "Eigene Rolle zu Betreuer wechseln"
- source: "antrag"
- actors:
- - *hochschullehrer
- view-actor: *view-actor-all
- form: *antrag-forms-betreuer
- "betreuer als hochschullehrer, student":
- <<: *betreuer-hochschullehrer
- source: "antrag, student"
- "betreuer als hochschullehrer, hochschullehrer":
- <<: *betreuer-hochschullehrer
- source: "antrag, hochschullehrer"
- "betreuer als hochschullehrer, student&hochschullehrer":
- <<: *betreuer-hochschullehrer
- source: "antrag, student&hochschullehrer"
- "betreuer als hochschullehrer, student&hochschullehrer&anmeldetag":
- <<: *betreuer-hochschullehrer
- source: "antrag, student&hochschullehrer, anmeldetag"
- "hochschullehrer als betreuer": &hochschullehrer-betreuer
- mode: manual
- display-label: "Eigene Rolle zu Hochschullehrer wechseln"
- source: "antrag"
- actors:
- - *betreuer
- view-actor: *view-actor-all
- form: *antrag-forms-hochschullehrer
- "hochschullehrer als betreuer, hochschullehrer":
- <<: *hochschullehrer-betreuer
- source: "antrag, hochschullehrer"
- "hochschullehrer als betreuer, student":
- <<: *hochschullehrer-betreuer
- source: "antrag, student"
- "hochschullehrer als betreuer, student&hochschullehrer":
- <<: *hochschullehrer-betreuer
- source: "antrag, student&hochschullehrer"
- "hochschullehrer als betreuer, student&hochschullehrer&anmeldetag":
- <<: *hochschullehrer-betreuer
- source: "antrag, student&hochschullehrer, anmeldetag"
- "korrektur als betreuer": &korrektur-betreuer
- mode: manual
- display-label: "Antrag anpassen"
- source: "antrag"
- actors:
- - *betreuer
- view-actor: *view-actor-all
- form: *antrag-forms-betreuer
- "korrektur als betreuer, student":
- <<: *korrektur-betreuer
- source: "antrag, student"
- "korrektur als betreuer, hochschullehrer":
- <<: *korrektur-betreuer
- source: "antrag, hochschullehrer"
- "korrektur als betreuer, student&hochschullehrer":
- <<: *korrektur-betreuer
- source: "antrag, student&hochschullehrer"
- "korrektur als betreuer, student&hochschullehrer&anmeldetag":
- <<: *korrektur-betreuer
- source: "antrag, student&hochschullehrer, anmeldetag"
- "korrektur als student": &korrektur-student
- mode: manual
- display-label: "Antrag anpassen"
- source: "antrag"
- actors:
- - *student
- view-actor: *view-actor-all
- form:
- "sprache": *sprache-form-optional
- "titel": *titel-form-optional
- "titel, englisch": *entitel-form-optional
- "aufgabenstellung": *aufgabenstellung-form
- "korrektur als student, hochschullehrer":
- <<: *korrektur-student
- source: "antrag, hochschullehrer"
-
-"antrag, hochschullehrer":
- viewers:
- display-label: "Antrag angelegt und vom Hochschullehrer bestätigt"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- payload-view: *payload-view
- messages:
- - viewers:
- - *hochschullehrer
- - *betreuer
- restriction:
- dnf-terms:
- - - tag: negated
- var:
- tag: payload-filled
- payload-filled: "anmeldetag"
- status: info
- content: "Es muss zunächst „Anmeldetag“ eingetragen und der Antrag vom Student bestätigt werden, damit der Antrag weiter von der Prüfungsverwaltung bearbeitet werden kann."
- - viewers:
- - *hochschullehrer
- - *betreuer
- restriction:
- dnf-terms:
- - - tag: variable
- var:
- tag: payload-filled
- payload-filled: "anmeldetag"
- status: info
- content: "Der Antrag muss zunächst noch vom Student bestätigt werden, damit er von der Prüfungsverwaltung weiter bearbeitet werden kann."
- final: false
- edges:
- "antrag bestaetigen als hochschullehrer":
- mode: manual
- display-label: "Antrag bestätigen (als verantwortlicher Hochschullehrer)"
- source: "antrag"
- actors:
- - *hochschullehrer
- - *pruefungsamt
- view-actor: *view-actor-all
- form: {}
- "korrektur als hochschullehrer":
- <<: *korrektur-hochschullehrer
- source: "antrag, hochschullehrer"
- "korrektur als hochschullehrer, student":
- <<: *korrektur-hochschullehrer
- source: "antrag, student&hochschullehrer"
- "korrektur als hochschullehrer, student&anmeldetag":
- <<: *korrektur-hochschullehrer
- source: "antrag, student&hochschullehrer, anmeldetag"
-"antrag, student":
- viewers:
- display-label: "Antrag angelegt und vom Student bestätigt"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- payload-view: *payload-view
- messages:
- - viewers:
- - *hochschullehrer
- - *betreuer
- restriction:
- dnf-terms:
- - - tag: negated
- var:
- tag: payload-filled
- payload-filled: "anmeldetag"
- status: info
- content: "Es muss zunächst „Anmeldetag“ eingetragen und der Antrag von einem verantwortlichen Hochschullehrer bestätigt werden, damit der Antrag weiter von der Prüfungsverwaltung bearbeitet werden kann."
- - viewers:
- - *hochschullehrer
- - *betreuer
- restriction:
- dnf-terms:
- - - tag: variable
- var:
- tag: payload-filled
- payload-filled: "anmeldetag"
- status: info
- content: "Der Antrag muss zunächst noch von einem verantwortlichen Hochschullehrer bestätigt werden, damit er von der Prüfungsverwaltung weiter bearbeitet werden kann."
- final: false
- edges:
- "antrag bestaetigen als student":
- mode: manual
- display-label: "Antrag bestätigen (als Student)"
- source: "antrag"
- actors:
- - *student
- - *pruefungsamt
- view-actor: *view-actor-all
- form: {}
- "korrektur als student":
- <<: *korrektur-student
- source: "antrag, student"
- "korrektur als student, hochschullehrer":
- <<: *korrektur-student
- source: "antrag, student&hochschullehrer"
- "korrektur als student, hochschullehrer&anmeldetag":
- <<: *korrektur-student
- source: "antrag, student&hochschullehrer, anmeldetag"
-"antrag, student&hochschullehrer":
- viewers:
- display-label: "Antrag angelegt und von Student und Hochschullehrer bestätigt"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- payload-view: *payload-view
- messages:
- - viewers:
- - *hochschullehrer
- - *betreuer
- restriction: null
- status: info
- content: "Es muss zunächst „Anmeldetag“ eingetragen werden, damit der Antrag weiter von der Prüfungsverwaltung bearbeitet werden kann."
- final: false
- edges:
- "antrag bestaetigen als student":
- mode: manual
- display-label: "Antrag bestätigen (als Student)"
- source: "antrag, hochschullehrer"
- actors:
- - *student
- - *pruefungsamt
- view-actor: *view-actor-all
- form: {}
- "antrag bestaetigen als hochschullehrer":
- mode: manual
- display-label: "Antrag bestätigen (als verantwortlicher Hochschullehrer)"
- source: "antrag, student"
- actors:
- - *hochschullehrer
- - *pruefungsamt
- view-actor: *view-actor-all
- form: {}
-"antrag, student&hochschullehrer, anmeldetag":
- viewers:
- display-label: "Antrag angelegt, von Student und Hochschullehrer bestätigt, Anmeldetag eingetragen"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- payload-view: *payload-view
- messages: []
- final: false
- edges:
- "anmeldetag ist eingetragen":
- mode: automatic
- source: "antrag, student&hochschullehrer"
- restriction:
- dnf-terms:
- - - tag: variable
- var:
- tag: payload-filled
- payload-filled: "anmeldetag"
-"angemeldet":
- viewers:
- display-label: "Angemeldet"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- payload-view: *payload-view
- messages: []
- final: false
- edges:
- "anmelden, bestaetigt student&hochschullehrer, anmeldetag":
- mode: manual
- display-label: "Arbeit anmelden (bestätigt vom Student und verantwortlichem Hochschullehrer)"
- source: "antrag, student&hochschullehrer, anmeldetag"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: {}
- "anmelden, bestaetigt student&hochschullehrer":
- mode: manual
- display-label: "Arbeit anmelden (bestätigt vom Student und verantwortlichem Hochschullehrer)"
- source: "antrag, student&hochschullehrer"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "anmeldetag":
- - "4":
- <<: *anmeldetag-field-optional
- optional: false
- "anmelden, bestaetigt student":
- mode: manual
- display-label: "Arbeit anmelden (bestätigt nur vom Student)"
- source: "antrag, student"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "anmeldetag":
- - "4":
- <<: *anmeldetag-field-optional
- optional: false
- "anmelden, bestaetigt hochschullehrer":
- mode: manual
- display-label: "Arbeit anmelden (bestätigt nur vom Hochschullehrer)"
- source: "antrag, hochschullehrer"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form:
- "anmeldetag":
- - "4":
- <<: *anmeldetag-field-optional
- optional: false
-"datei":
- viewers:
- display-label: "Abgabe hochgeladen"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- payload-view: *payload-view
- messages: []
- final: false
- edges:
- "datei hochladen":
- mode: manual
- display-label: "Arbeit hochladen"
- source: "angemeldet"
- actors:
- - *pruefungsamt
- - *student
- view-actor:
- - *pruefungsamt
- - *student
- - *betreuer
- - *hochschullehrer
- form:
- "abgabe":
- - "9":
- tag: file
- label: "Abgabe"
- tooltip: null
- optional: false
- config:
- unpack-zips:
- default: true
- force: false
- multiple: true
- all-empty-ok: false
-"abgegeben":
- viewers:
- display-label: "Abgabe akzeptiert"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- payload-view: *payload-view
- messages: []
- final: false
- edges:
- "datei akzeptieren":
- mode: manual
- display-label: "Abgabe akzeptieren"
- source: "datei"
- actors:
- - *pruefungsamt
- view-actor:
- - *pruefungsamt
- form: {}
-"benotet":
- viewers:
- display-label: "Benotet"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- payload-view: *payload-view
- messages: []
- final: false
- edges: {}
-"abgebrochen":
- viewers:
- display-label: "Abgebrochen"
- viewers:
- - *pruefungsamt
- - *hochschullehrer
- - *betreuer
- - *student
- payload-view: *payload-view
- messages: []
- final: false
- edges: {}
-"fertig":
- viewers:
- display-label: "Fertig"
- viewers:
- - *pruefungsamt
- payload-view: *payload-view
- messages: []
- final: true
- edges: {}
diff --git a/testdata/workflows b/testdata/workflows
new file mode 160000
index 000000000..92827c118
--- /dev/null
+++ b/testdata/workflows
@@ -0,0 +1 @@
+Subproject commit 92827c1186465baba6cba70a19d71defd806ed28