From c630f4e54b13a906e0cba84ab6f22f577d9de315 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 19 Sep 2024 15:22:33 +0200 Subject: [PATCH] userstudy1 finalized, also some bug fixes and small improvements --- slaeforms/app.py | 17 +- slaeforms/static/styles.css | 16 +- slaeforms/templates/endpage.html | 18 +- slaeforms/templates/intropage.html | 1 + slaeforms/templates/p1infos.html | 7 + slaeforms/templates/p1intro.html | 33 ++ slaeforms/templates/p2infos.html | 19 + slaeforms/templates/p2intro.html | 33 ++ slaeforms/templates/p3infos.html | 19 + slaeforms/templates/p3intro.html | 33 ++ slaeforms/templates/standard_template.html | 72 ++-- slaeforms/templates/startpage.html | 4 +- slaeforms/userstudy1.json | 386 ++++++++++++++++++--- 13 files changed, 557 insertions(+), 101 deletions(-) create mode 100644 slaeforms/templates/p1infos.html create mode 100644 slaeforms/templates/p1intro.html create mode 100644 slaeforms/templates/p2infos.html create mode 100644 slaeforms/templates/p2intro.html create mode 100644 slaeforms/templates/p3infos.html create mode 100644 slaeforms/templates/p3intro.html diff --git a/slaeforms/app.py b/slaeforms/app.py index 60dc765..c332efc 100644 --- a/slaeforms/app.py +++ b/slaeforms/app.py @@ -361,7 +361,7 @@ def sendpage(): video = request.files['recordedVideo'] formatted_date = date.strftime("%Y.%m.%d %H-%M-%S") print("date: ", date) - video_name = str(session_user_id) + "_" + session["current_block_name"] + "_" + session["current_stimulus_name"] + "_" + str(formatted_date) + ".webm" + video_name = str(session_user_id) + "_" + session["current_block_name"] + "_" + str(session["current_stimulus_name"]) + "_" + str(formatted_date) + ".webm" path = os.path.join(UPLOAD_FOLDER, video_name) print("path: ",path) os.makedirs(UPLOAD_FOLDER, exist_ok=True) @@ -449,9 +449,18 @@ def update_session(): session["current_block_index"] += 1 session["current_block_name"] = session["block_names"][session["current_block_index"]] - if "stimuli" in config[session["current_block_name"]]: - # set the name of the current stimulus - session["current_stimulus_name"] = session["block_order"][session["current_block_name"]][session["current_stimulus_index"]] + #set values for the new block + current_block = config[session["current_block_name"]] + + if "stimuli" in current_block: + # set the name of the current stimulus + session["current_stimulus_name"] = session["block_order"][session["current_block_name"]][session["current_stimulus_index"]] + + # if the block has stimuli, get how many + if current_block["stimuli"]["type"] == "single_video" or current_block["stimuli"]["type"] == "empty": + session["number_of_stimuli"] = len(list(current_block["stimuli"]["list"])) + elif current_block["stimuli"]["type"] == "double_video": + session["number_of_stimuli"] = len(list(current_block["stimuli"]["list_1"])) print("---Session updated-----------------------------------------------") print("current_block_index / number_of_blocks: {current_block_index} / {number_of_blocks}".format(current_block_index=session["current_block_index"],number_of_blocks=session["number_of_blocks"])) diff --git a/slaeforms/static/styles.css b/slaeforms/static/styles.css index 2c1841b..61d567d 100644 --- a/slaeforms/static/styles.css +++ b/slaeforms/static/styles.css @@ -106,6 +106,10 @@ form { padding-bottom: 2em; } +.questioncontainer { + max-width: 70%; + margin: auto; +} .dsgvoform { text-align: right; @@ -155,6 +159,7 @@ label { border-radius: 8px; /* Optional: rounds the corners of the button */ width: auto; + float: right; } #submitbutton:hover { @@ -174,8 +179,10 @@ label { } .textarea-label { - align-self: flex-start; - /* Aligns the label to the start of the container */ + font-size: 18px; + font-weight: bold; + text-align: center; + } /* Helper */ @@ -188,8 +195,7 @@ label { text-align: center; } -h2, -h3 { +h2 { text-align: center; } @@ -313,7 +319,7 @@ iframe { .dv_half { display: inline-block; - width: 45%; + width: 48%; margin: auto; } diff --git a/slaeforms/templates/endpage.html b/slaeforms/templates/endpage.html index eadae87..c611d9a 100644 --- a/slaeforms/templates/endpage.html +++ b/slaeforms/templates/endpage.html @@ -1,5 +1,6 @@ + @@ -9,13 +10,18 @@
-

Danke für ihre Teilnahme!

+

Vielen Dank für Ihre Teilnahme!

-
-

- Falls sie noch Fragen oder Rückmeldungen haben, schreiben sie mir unter: jan.dickmann@web.de -

+
+

+ Wir würden uns freuen, wenn Sie die Studie mit anderen Gehörlosen oder Gebärdensprache sprechenden + Personen Teilen würden: https://slaeforms.leafbla.de/start +

+

+ Falls sie noch Fragen oder Anmerkungen haben, schreiben sie uns unter: jan.dickmann@web.de +

+
-
+ \ No newline at end of file diff --git a/slaeforms/templates/intropage.html b/slaeforms/templates/intropage.html index 55666bf..385c0d9 100644 --- a/slaeforms/templates/intropage.html +++ b/slaeforms/templates/intropage.html @@ -37,6 +37,7 @@ + diff --git a/slaeforms/templates/p1infos.html b/slaeforms/templates/p1infos.html new file mode 100644 index 0000000..97577a3 --- /dev/null +++ b/slaeforms/templates/p1infos.html @@ -0,0 +1,7 @@ +
+

Studie Teil 1:

+

Im Folgenden werden ihnen Videos gezeigt, die sie in den Kategorien „Natürlichkeit“, „Verständlichkeit“ und „grammatikalischer Korrektheit“ bewerten sollen.

+

Dafür können sie auf einer Skala mit 7 Punkten bewerten, wobei der Punkt ganz links für „sehr schlecht“, der Punkt in der Mitte für „neutral“, und der Punkt ganz rechts für „sehr schlecht“ steht.

+

Dann können sie weiteres Feedback als Text oder als Video geben. Das Video können sie direkt im Browser aufnehmen. Beachten sie, dass sie dazu eine Webcam benötigen und der Webseite erlauben müssen diese zu benutzen. Wenn sie auf den Kamera Knopf drücken, wird ihr Browser sie nach der Berechtigung fragen.

+

Genaue Informationen darüber wie wir die Videos verarbeiten finden sie in unserer Datenschutzerklärung.

+
\ No newline at end of file diff --git a/slaeforms/templates/p1intro.html b/slaeforms/templates/p1intro.html new file mode 100644 index 0000000..66f20fe --- /dev/null +++ b/slaeforms/templates/p1intro.html @@ -0,0 +1,33 @@ + + + + + + + + DGS Avatar Study + + + +
+

SLAEFORMS Gebärdensprachavatar Studie

+ + + +
+ + {% include "p1infos.html" %} + +
+
+
+ +
+
+ +
+ + + \ No newline at end of file diff --git a/slaeforms/templates/p2infos.html b/slaeforms/templates/p2infos.html new file mode 100644 index 0000000..e527b71 --- /dev/null +++ b/slaeforms/templates/p2infos.html @@ -0,0 +1,19 @@ +
+

Studie Teil 2:

+

Im Folgenden sehen Sie zwei Videos, in denen der gleiche Satz mit unterschiedlichen Formulierungen gebärdet wird.

+

Bitte verwenden Sie wieder die Punkteskala, um zu bewerten, welches der beiden Videos Sie besser finden.

+
    +
  1. Welche Formulierung war natürlicher?
  2. +
  3. Welche Formulierung haben Sie besser verstanden?
  4. +
  5. Welche Formulierung war korrekter?
  6. +
  7. Welche Formulierung hat Ihnen besser gefallen?
  8. +
+

Die Antwortmöglichkeiten sind jedesmal:

+
    +
  1. Links
  2. +
  3. eher Links
  4. +
  5. Beide gleich
  6. +
  7. eher Rechts
  8. +
  9. Rechts
  10. +
+
\ No newline at end of file diff --git a/slaeforms/templates/p2intro.html b/slaeforms/templates/p2intro.html new file mode 100644 index 0000000..36ecf1b --- /dev/null +++ b/slaeforms/templates/p2intro.html @@ -0,0 +1,33 @@ + + + + + + + + DGS Avatar Study + + + +
+

SLAEFORMS Gebärdensprachavatar Studie

+ + + +
+ + {% include "p2infos.html" %} + +
+
+
+ +
+
+ +
+ + + \ No newline at end of file diff --git a/slaeforms/templates/p3infos.html b/slaeforms/templates/p3infos.html new file mode 100644 index 0000000..c4de975 --- /dev/null +++ b/slaeforms/templates/p3infos.html @@ -0,0 +1,19 @@ +
+

Studie Teil 3:

+

Im Folgenden sehen Sie ein Video, in dem der Avatar drei Mal „Gleis“ gebärdet, jedes Mal in eine etwas andere Richtung. So soll der Avatar in Zukunft die Position und Richtung des Gleises relativ zum Avatar und Zuschauer zum Ausdruck bringen.

+

Beantworten Sie dazu bitte die folgenden Fragen, indem Sie die Aussage auf einer Skala mit fünf Punkten, von „Trifft überhaupt nicht zu“, zu „Trifft vollkommen zu“ bewerten.

+
    +
  1. Man kann gut erkennen, in welche Richtung das Gleis zeigt.
  2. +
  3. Die Gebärde ist schwer zu erkennen
  4. +
  5. Das Anpassen der Richtung und der Position der Gebärde kann dabei helfen, besser zu verstehen, wo das Gleis liegt.
  6. +
  7. Ich finde diesen Ansatz nicht gut.
  8. +
+

Die Antwortmöglichkeiten sind jedesmal:

+
    +
  1. Links
  2. +
  3. eher Links
  4. +
  5. Beide gleich
  6. +
  7. eher Rechts
  8. +
  9. Rechts
  10. +
+
\ No newline at end of file diff --git a/slaeforms/templates/p3intro.html b/slaeforms/templates/p3intro.html new file mode 100644 index 0000000..45b1c3e --- /dev/null +++ b/slaeforms/templates/p3intro.html @@ -0,0 +1,33 @@ + + + + + + + + DGS Avatar Study + + + +
+

SLAEFORMS Gebärdensprachavatar Studie

+ + + +
+ + {% include "p3infos.html" %} + +
+
+
+ +
+
+ +
+ + + \ No newline at end of file diff --git a/slaeforms/templates/standard_template.html b/slaeforms/templates/standard_template.html index 8a141cd..d19537d 100644 --- a/slaeforms/templates/standard_template.html +++ b/slaeforms/templates/standard_template.html @@ -54,23 +54,23 @@ {% elif (embed == "no") %} -
-
-
- +
+
+
+ +
+
+
+
+ +
-
-
- -
-
- -
+ {% else %} {{code}} {% endif %} @@ -155,13 +155,18 @@ step={{question["step"]}} {% if (questions[question]["type"] == "textblock") %} + +

{{ questions[question]['text']}}

- +
+ {% elif (questions[question]["type"] == "likert") %}
+

{{ questions[question]['text']}}

+
{% for point in questions[question]["points"] %}
- + {% elif (questions[question]["type"] == "likert-basic") %} +

{{ questions[question]['text']}}

+
{% for point in questions[question]["points"] %} @@ -192,7 +199,7 @@ step={{question["step"]}} {% endfor %}
- + {% elif (questions[question]["type"] == "textinput") %}
@@ -203,18 +210,7 @@ step={{question["step"]}} maxlength="{{ questions[question]['size'] }}" {{required(questions[question])}}>
- - - {% elif (questions[question]["type"] == "textinput") %} -
- -
- + {% elif (questions[question]["type"] == "dateinput") %}
@@ -224,7 +220,7 @@ step={{question["step"]}} {{required(questions[question])}}>
- + {% elif (questions[question]["type"] == "numberinput") %}
@@ -234,7 +230,7 @@ step={{question["step"]}} {{inputconfig(questions[question])}} {{required(questions[question])}}>
- + {% elif (questions[question]["type"] == "emailinput") %}
@@ -244,7 +240,7 @@ step={{question["step"]}} {{required(questions[question])}}>
- + {% elif (questions[question]["type"] == "dropdowninput") %}
@@ -262,7 +258,7 @@ step={{question["step"]}}
- + {% elif (questions[question]["type"] == "multiplechoice") %}
@@ -278,11 +274,11 @@ step={{question["step"]}} {% endfor %}
- + {% elif (questions[question]["type"] == "videoinput") %} -

{{ questions[question]['text']}}

+

{{ questions[question]['text']}}

+ diff --git a/slaeforms/templates/startpage.html b/slaeforms/templates/startpage.html index b4fc556..2a161a3 100644 --- a/slaeforms/templates/startpage.html +++ b/slaeforms/templates/startpage.html @@ -9,7 +9,7 @@ -
+

SLAEFORMS Gebärdensprachavatar Studie

@@ -71,7 +71,7 @@ Ich akezeptiere die Datenschutzbestimmungen
- +
diff --git a/slaeforms/userstudy1.json b/slaeforms/userstudy1.json index 7dae1d1..bbfbe6b 100644 --- a/slaeforms/userstudy1.json +++ b/slaeforms/userstudy1.json @@ -273,11 +273,6 @@ "size": "40", "nullable": "false" }, - "schule": { - "type": "string", - "size": "4", - "nullable": "false" - }, "avatar_erfahrung": { "type": "string", "size": "4", @@ -286,6 +281,10 @@ } } }, + "Block 2 Intro":{ + "type": "SinglePage", + "template": "p1intro.html" + }, "Block 2": { "type": "TaskTemplate", "template": "standard_template.html", @@ -327,7 +326,7 @@ "points": { "naturalness-p1": { "value": "1", - "text": "Gar nicht gut 🙁👎" + "text": "Gar nicht gut 👎" }, "naturalness-p2": { "value": "2", @@ -351,7 +350,7 @@ }, "naturalness-p7": { "value": "7", - "text": "Sehr gut 😊👍" + "text": "Sehr gut 👍" } } }, @@ -363,7 +362,7 @@ "points": { "understandability-p1": { "value": "1", - "text": "Gar nicht gut 🙁👎" + "text": "Gar nicht gut 👎" }, "understandability--p2": { "value": "2", @@ -387,7 +386,7 @@ }, "understandability--p7": { "value": "7", - "text": "Sehr gut 😊👍" + "text": "Sehr gut 👍" } } }, @@ -399,7 +398,7 @@ "points": { "gramKorrektheit-p1": { "value": "1", - "text": "Gar nicht gut 🙁👎" + "text": "Gar nicht gut 👎" }, "gramKorrektheit-p2": { "value": "2", @@ -423,7 +422,7 @@ }, "gramKorrektheit-p7": { "value": "7", - "text": "Sehr gut 😊👍" + "text": "Sehr gut 👍" } } }, @@ -442,16 +441,24 @@ } }, "infovideo": { - "videourl": "0009-inflected.mp4", - "infotext": "nnnn", + "videourl": "videos/0009-inflected.mp4", + "htmlblock": "p1infos.html", "configuration": { "embed": "no" } }, "database_table": { - "table_name": "single_video_responses", + "table_name": "p1_video_ratings", "fields": { - "likertscale": { + "natürlichkeit": { + "type": "integer", + "nullable": "false" + }, + "verständlichkeit": { + "type": "integer", + "nullable": "false" + }, + "gramKorrektheit": { "type": "integer", "nullable": "false" }, @@ -468,93 +475,378 @@ } } }, + "Block 3 Intro":{ + "type": "SinglePage", + "template": "p2intro.html" + }, "Block 3": { "type": "TaskTemplate", "template": "standard_template.html", "stimuli": { "type": "double_video", "list_1": { - "video_1": "https://www.youtube-nocookie.com/embed/pQCfrTyC-1s?si=-4nATwbeQ_U4wbDg", - "video_2": "https://www.youtube-nocookie.com/embed/pQCfrTyC-1s?si=-4nATwbeQ_U4wbDg" + "video_1": "0009-inflected.mp4" }, "list_2": { - "video_2": "https://www.youtube-nocookie.com/embed/trUewX8XBO4?si=14Q4s2Pn2M3ENPNd", - "video_1": "https://www.youtube-nocookie.com/embed/trUewX8XBO4?si=14Q4s2Pn2M3ENPNd" + "video_1": "0009-variation-wide.mp4" }, "configuration": { - "embed": "yt" + "embed": "no" } }, "questions": { "question1": { - "type": "likert", - "name": "likertscale", - "text": "Welches Video gefällt ihnen besser?", + "type": "likert-basic", + "name": "natürlicher", + "text": "Welche Formulierung ist natürlicher?", "required": "true", "points": { - "p1": { - "value": "1", - "text": "Ich finde das linke Video besser" + "natürlicher-p1": { + "value": "Links", + "text": "Links" }, - "p2": { - "value": "2", - "text": "Ich finde beide Videos gleich gut" + "natürlicher-p2": { + "value": "eherLinks", + "text": "eher Links" }, - "p3": { - "value": "3", - "text": "Ich finde das rechte Video besser" + "natürlicher-p3": { + "value": "Gleich", + "text": "Beide gleich" + }, + "natürlicher-p4": { + "value": "eherRechts", + "text": "eher Rechts" + }, + "natürlicher-p5": { + "value": "Rechts", + "text": "Rechts" } } + }, + "question2": { + "type": "likert-basic", + "name": "verständlicher", + "text": "Welche Formulierung verstehen sie besser?", + "required": "true", + "points": { + "verständlicher-p1": { + "value": "Links", + "text": "Links" + }, + "verständlicher-p2": { + "value": "eherLinks", + "text": "eher Links" + }, + "verständlicher-p3": { + "value": "Gleich", + "text": "Beide gleich" + }, + "verständlicher-p4": { + "value": "eherRechts", + "text": "eher Rechts" + }, + "verständlicher-p5": { + "value": "Rechts", + "text": "Rechts" + } + } + }, + "question3": { + "type": "likert-basic", + "name": "korreter", + "text": "Welche Formulierung ist korreter?", + "required": "true", + "points": { + "korreter-p1": { + "value": "Links", + "text": "Links" + }, + "korreter-p2": { + "value": "eherLinks", + "text": "eher Links" + }, + "korreter-p3": { + "value": "Gleich", + "text": "Beide gleich" + }, + "korreter-p4": { + "value": "eherRechts", + "text": "eher Rechts" + }, + "korreter-p5": { + "value": "Rechts", + "text": "Rechts" + } + } + }, + "question4": { + "type": "likert-basic", + "name": "besser", + "text": "Welche Formulierung gefällt ihnen besser?", + "required": "true", + "points": { + "besser-p1": { + "value": "Links", + "text": "Links" + }, + "besser-p2": { + "value": "eherLinks", + "text": "eher Links" + }, + "besser-p3": { + "value": "Gleich", + "text": "Beide gleich" + }, + "besser-p4": { + "value": "eherRechts", + "text": "eher Rechts" + }, + "besser-p5": { + "value": "Rechts", + "text": "Rechts" + } + } + }, + "question5": { + "type": "textinput", + "name": "text_feedback", + "text": "Hier können sie Text Feedback geben", + "required": "false", + "size": "250" + }, + "question6": { + "type": "videoinput", + "text": "Hier können sie per Video Feedback geben", + "name": "video_feedback", + "required": "false" } }, "infovideo": { - "videourl": "0009-inflected.mp4", - "infotext": "nnnn", + "videourl": "videos/0009-inflected.mp4", + "htmlblock": "p2infos.html", "configuration": { "embed": "no" } }, "database_table": { - "table_name": "double_video_responses", + "table_name": "p2_video_comparisson", "fields": { - "likertscale": { - "type": "integer", + "natürlicher": { + "type": "string", + "size": "15", "nullable": "false" + }, + "verständlicher": { + "type": "string", + "size": "15", + "nullable": "false" + }, + "korreter": { + "type": "string", + "size": "15", + "nullable": "false" + }, + "besser": { + "type": "string", + "size": "15", + "nullable": "false" + }, + "text_feedback": { + "type": "string", + "size": "250", + "nullable": "true" + }, + "video_upload": { + "type": "string", + "size": "100", + "nullable": "true" } } } }, + "Block 4 Intro":{ + "type": "SinglePage", + "template": "p3intro.html" + }, "Block 4": { "type": "TaskTemplate", "template": "standard_template.html", "stimuli": { - "type": "empty", + "type": "single_video", + "order": "random", "list": { - "empty_stimulus": "" + "video_1": "GLEISvariations.mp4" + }, + "configuration": { + "embed": "no" } }, "questions": { + "question0": { + "type": "textblock", + "name": "fragestellung", + "text": "Im Video gebärdet der Avatar drei Mal „Gleis“, jedes Mal in eine etwas andere Richtung. Bitte beantworten sie dazu die folgenden Fragen:" + }, "question1": { + "type": "likert-basic", + "name": "richtung_erkennen", + "text": "Man kann gut erkennen, in welche Richtung das Gleis zeigt.", + "required": "true", + "points": { + "richtung_erkennen-p1": { + "value": "1", + "text": "Trifft überhaupt nicht zu 👎" + }, + "richtung_erkennen-p2": { + "value": "2", + "text": "Trifft eher nicht zu" + }, + "richtung_erkennen-p3": { + "value": "3", + "text": "Ich weiß nicht" + }, + "richtung_erkennen-p4": { + "value": "4", + "text": "Trifft eher zu" + }, + "richtung_erkennen-p5": { + "value": "5", + "text": "Trifft vollkommen zu" + } + } + }, + "question2": { + "type": "likert-basic", + "name": "schwer_zu_erkennen", + "text": "Die Gebärde ist schwer zu erkennen.", + "required": "true", + "points": { + "schwer_zu_erkennen-p1": { + "value": "1", + "text": "Trifft überhaupt nicht zu 👎" + }, + "schwer_zu_erkennen-p2": { + "value": "2", + "text": "Trifft eher nicht zu" + }, + "schwer_zu_erkennen-p3": { + "value": "3", + "text": "Ich weiß nicht" + }, + "schwer_zu_erkennen-p4": { + "value": "4", + "text": "Trifft eher zu" + }, + "schwer_zu_erkennen-p5": { + "value": "5", + "text": "Trifft vollkommen zu" + } + } + }, + "question3": { + "type": "likert-basic", + "name": "bessere_lokalisierung", + "text": "Das Anpassen der Richtung und der Position der Gebärde kann dabei helfen, besser zu verstehen, wo das Gleis liegt.", + "required": "true", + "points": { + "bessere_lokalisierung-p1": { + "value": "1", + "text": "Trifft überhaupt nicht zu 👎" + }, + "bessere_lokalisierung-p2": { + "value": "2", + "text": "Trifft eher nicht zu" + }, + "bessere_lokalisierung-p3": { + "value": "3", + "text": "Ich weiß nicht" + }, + "bessere_lokalisierung-p4": { + "value": "4", + "text": "Trifft eher zu" + }, + "bessere_lokalisierung-p5": { + "value": "5", + "text": "Trifft vollkommen zu" + } + } + }, + "question4": { + "type": "likert-basic", + "name": "nicht_gut", + "text": "Ich finde diesen Ansatz gut.", + "required": "true", + "points": { + "nicht_gut-p1": { + "value": "1", + "text": "Trifft überhaupt nicht zu 👎" + }, + "nicht_gut-p2": { + "value": "2", + "text": "Trifft eher nicht zu" + }, + "nicht_gut-p3": { + "value": "3", + "text": "Ich weiß nicht" + }, + "nicht_gut-p4": { + "value": "4", + "text": "Trifft eher zu" + }, + "nicht_gut-p5": { + "value": "5", + "text": "Trifft vollkommen zu" + } + } + }, + "question5": { "type": "textinput", - "name": "formfeedback", - "text": "Das war der Prototyp für dieses Studientool. Über Feedback würde ich mich freuen. Entweder hier oder per Email unter: jan.dickmann@web.de", + "name": "text_feedback", + "text": "Hier können sie Text Feedback geben", "required": "false", - "size": "1000" + "size": "250" + }, + "question6": { + "type": "videoinput", + "text": "Hier können sie per Video Feedback geben", + "name": "video_feedback", + "required": "false" } }, "infovideo": { - "videourl": "0009-inflected.mp4", - "infotext": "nnnn", + "videourl": "videos/0009-inflected.mp4", + "htmlblock": "p3infos.html", "configuration": { "embed": "no" } }, "database_table": { - "table_name": "feedback_responses", + "table_name": "p3_gleis_variations", "fields": { - "formfeedback": { + "richtung_erkennen": { + "type": "integer", + "nullable": "false" + }, + "schwer_zu_erkennen": { + "type": "integer", + "nullable": "false" + }, + "bessere_lokalisierung": { + "type": "integer", + "nullable": "false" + }, + "nicht_gut": { + "type": "integer", + "nullable": "false" + }, + "text_feedback": { "type": "string", - "size": "1000", + "size": "250", + "nullable": "true" + }, + "video_upload": { + "type": "string", + "size": "100", "nullable": "true" } }