chore: move workflow definitions to submodule

This commit is contained in:
Gregor Kleen 2020-12-18 13:39:55 +01:00
parent 78c2885827
commit c38ef39938
5 changed files with 6 additions and 2041 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "testdata/workflows"]
path = testdata/workflows
url = gitlab2.rz.ifi.lmu.de:uni2work/workflows

View File

@ -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{..}

File diff suppressed because it is too large Load Diff

683
testdata/theses.yaml vendored
View File

@ -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": &notizen-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: {}

1
testdata/workflows vendored Submodule

@ -0,0 +1 @@
Subproject commit 92827c1186465baba6cba70a19d71defd806ed28