From 6534cbf8dfb7318bc27cc45ea095306cdf03f3e8 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Mon, 8 May 2023 15:39:53 +0200 Subject: [PATCH] Update feedback questions and order --- client/src/components/FeedbackForm.vue | 48 ++++++++----------- client/src/locales/de.json | 16 +++---- client/src/pages/cockpit/FeedbackPage.vue | 19 +++----- server/vbv_lernwelt/feedback/factories.py | 15 +++--- server/vbv_lernwelt/feedback/models.py | 12 ----- server/vbv_lernwelt/feedback/serializers.py | 2 +- .../feedback/tests/test_feedback_api.py | 10 ++-- server/vbv_lernwelt/feedback/views.py | 3 +- 8 files changed, 50 insertions(+), 75 deletions(-) diff --git a/client/src/components/FeedbackForm.vue b/client/src/components/FeedbackForm.vue index 7cd1e9db..6e455817 100644 --- a/client/src/components/FeedbackForm.vue +++ b/client/src/components/FeedbackForm.vue @@ -14,7 +14,7 @@ @previous="previousStep()" @next="nextStep()" > -
+

{{ $t("feedback.intro", { @@ -27,51 +27,47 @@

- -
-

{{ t("feedback.materialsRatingLabel") }}

- -
- + + (null); @@ -207,7 +202,7 @@ const sendFeedback = () => { } const input: SendFeedbackInput = reactive({ data: { - materials_rating: materialsRating, + preparation_task_clarity: preparationTaskClarity, course_negative_feedback: courseNegativeFeedback, course_positive_feedback: coursePositiveFeedback, goald_attainment: goalAttainment, @@ -216,7 +211,6 @@ const sendFeedback = () => { instructor_open_feedback: instructorOpenFeedback, satisfaction, proficiency, - received_materials: receivedMaterials, would_recommend: wouldRecommend, }, page: props.page.translation_key, diff --git a/client/src/locales/de.json b/client/src/locales/de.json index 6d1fb2ed..b6f0a240 100644 --- a/client/src/locales/de.json +++ b/client/src/locales/de.json @@ -87,23 +87,23 @@ "circleFeedback": "Feedback zum Circle", "completionDescription": "Dein Feedback ist anonym. Dein Vor- und Nachname werden bei deiner Trainer/-in nicht angezeigt.", "completionTitle": "Schicke dein Feedback an {name}", - "courseNegativeFeedbackLabel": "Wo sehen Sie Verbesserungspotenzial?", - "coursePositiveFeedbackLabel": "Was hat Ihnen besonders gut gefallen?", + "courseNegativeFeedbackLabel": "Wo siehst du Verbesserungspotential?", + "coursePositiveFeedbackLabel": "Was hat dir besonders gut gefallen?", "feedbackPageInfo": "Teilnehmer haben das Feedback ausgefüllt", "feedbackPageTitle": "Feedback zum Lehrgang", "feedbackSent": "Dein Feedback wurde abgeschickt", "goalAttainmentLabel": "Zielerreichung insgesamt", "happy": "Zufrieden", - "instructorCompetenceLabel": "Der Kursleiter war themenstark, fachkompetent.", - "instructorOpenFeedbackLabel": "Was ich dem Kursleiter sonst noch sagen wollte:", - "instructorRespectLabel": "Fragen und Anregungen der Kursteilnehmenden wurden ernst genommen und aufgegriffen.", + "instructorCompetenceLabel": "Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der Kursleiterin?", + "instructorOpenFeedbackLabel": "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?", + "instructorRespectLabel": "Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und aufgegriffen?", "intro": "{name}, dein/e Trainer/-in, bittet dich, ihm/ihr Feedback zu geben. Das ist freiwillig, würde aber ihm/ihr helfen, deine Lernerlebniss zu verbessern.", "materialsRatingLabel": "Falls ja: Wie beurteilen Sie die Vorbereitungsunterlagen (z.B. eLearning)?", "noFeedbacks": "Es wurden noch keine Feedbacks abgegeben", - "proficiencyLabel": "Wie beurteilen Sie Ihre Sicherheit bezüglichen den Themen nach dem Kurs?", + "preparationTaskClarityLabel": "Waren die Vorbereitungsaufträge klar und verständlich?", + "proficiencyLabel": "Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?", "questionTitle": "Frage", - "receivedMaterialsLabel": "Haben Sie Vorbereitungsunterlagen (z.B. eLearning) erhalten?", - "recommendLabel": "Würden Sie den Kurs weiterempfehlen?", + "recommendLabel": "Würdest du den Kurs weiterempfehlen?", "satisfactionLabel": "Zufriedenheit insgesamt", "sendFeedback": "Feedback abschicken", "sentByUsers": "Von {count} Teilnehmern ausgefüllt", diff --git a/client/src/pages/cockpit/FeedbackPage.vue b/client/src/pages/cockpit/FeedbackPage.vue index 63b5eb58..9e0dbc9f 100644 --- a/client/src/pages/cockpit/FeedbackPage.vue +++ b/client/src/pages/cockpit/FeedbackPage.vue @@ -83,10 +83,6 @@ const courseSessionsStore = useCourseSessionsStore(); const { t } = useI18n(); const orderedQuestions = [ - { - key: "would_recommend", - question: t("feedback.recommendLabel"), - }, { key: "satisfaction", question: t("feedback.satisfactionLabel"), @@ -100,12 +96,8 @@ const orderedQuestions = [ question: t("feedback.proficiencyLabel"), }, { - key: "received_materials", - question: t("feedback.receivedMaterialsLabel"), - }, - { - key: "materials_rating", - question: t("feedback.materialsRatingLabel"), + key: "preparation_task_clarity", + question: t("feedback.preparationTaskClarityLabel"), }, { key: "instructor_competence", @@ -119,6 +111,10 @@ const orderedQuestions = [ key: "instructor_open_feedback", question: t("feedback.instructorOpenFeedbackLabel"), }, + { + key: "would_recommend", + question: t("feedback.recommendLabel"), + }, { key: "course_negative_feedback", question: t("feedback.courseNegativeFeedbackLabel"), @@ -132,11 +128,10 @@ const orderedQuestions = [ const ratingKeys = [ "satisfaction", "goal_attainment", - "materials_rating", "instructor_competence", "instructor_respect", ]; -const verticalChartKyes = ["received_materials", "would_recommend"]; +const verticalChartKyes = ["preparation_task_clarity", "would_recommend"]; const horizontalChartKeys = ["proficiency"]; const openKeys = [ "course_negative_feedback", diff --git a/server/vbv_lernwelt/feedback/factories.py b/server/vbv_lernwelt/feedback/factories.py index eb21d3c8..d55d830f 100644 --- a/server/vbv_lernwelt/feedback/factories.py +++ b/server/vbv_lernwelt/feedback/factories.py @@ -11,8 +11,7 @@ class FeedbackFactory(DjangoModelFactory): "satisfaction": FuzzyInteger(2, 4), "goal_attainment": FuzzyInteger(3, 4), "proficiency": FuzzyChoice([20, 40, 60, 80]), - "received_materials": FuzzyChoice([True, False]), - "materials_rating": FuzzyInteger(2, 4), + "preparation_task_clarity": FuzzyChoice([True, False]), "instructor_competence": FuzzyInteger(3, 4), "instructor_respect": FuzzyInteger(3, 4), "instructor_open_feedback": FuzzyChoice( @@ -23,18 +22,18 @@ class FeedbackFactory(DjangoModelFactory): ] ), "would_recommend": FuzzyChoice([True, False]), - "course_positive_feedback": FuzzyChoice( - [ - "Die Präsentation war super", - "Das Beispiel mit der Katze fand ich sehr gut veranschaulicht!", - ] - ), "course_negative_feedback": FuzzyChoice( [ "Es wäre praktisch, Zugang zu einer FAQ zu haben.", "Es wäre schön, mehr Videos hinzuzufügen.", ] ), + "course_positive_feedback": FuzzyChoice( + [ + "Die Präsentation war super", + "Das Beispiel mit der Katze fand ich sehr gut veranschaulicht!", + ] + ), } ) diff --git a/server/vbv_lernwelt/feedback/models.py b/server/vbv_lernwelt/feedback/models.py index 6b4f2a10..6901601e 100644 --- a/server/vbv_lernwelt/feedback/models.py +++ b/server/vbv_lernwelt/feedback/models.py @@ -53,18 +53,6 @@ class FeedbackResponse(models.Model): ) super(FeedbackResponse, self).save(*args, **kwargs) - # satisfaction = FeedbackIntegerField() - # goal_attainment = FeedbackIntegerField() - # proficiency = models.IntegerField(null=True) - # received_materials = models.BooleanField(null=True) - # materials_rating = FeedbackIntegerField() - # instructor_competence = FeedbackIntegerField() - # instructor_respect = FeedbackIntegerField() - # instructor_open_feedback = models.TextField(blank=True) - # would_recommend = models.BooleanField(null=True) - # course_positive_feedback = models.TextField(blank=True) - # course_negative_feedback = models.TextField(blank=True) - data = models.JSONField(default=dict) created_at = models.DateTimeField(auto_now_add=True) diff --git a/server/vbv_lernwelt/feedback/serializers.py b/server/vbv_lernwelt/feedback/serializers.py index 17d149c4..3be42ed6 100644 --- a/server/vbv_lernwelt/feedback/serializers.py +++ b/server/vbv_lernwelt/feedback/serializers.py @@ -15,7 +15,7 @@ class CourseFeedbackSerializer(serializers.Serializer): satisfaction = FeedbackIntegerField() goal_attainment = FeedbackIntegerField() proficiency = serializers.IntegerField(required=False, allow_null=True) - received_materials = serializers.BooleanField(required=False, allow_null=True) + preparation_task_clarity = serializers.BooleanField() materials_rating = FeedbackIntegerField() instructor_competence = FeedbackIntegerField() instructor_respect = FeedbackIntegerField() diff --git a/server/vbv_lernwelt/feedback/tests/test_feedback_api.py b/server/vbv_lernwelt/feedback/tests/test_feedback_api.py index 51554f68..6ad2136c 100644 --- a/server/vbv_lernwelt/feedback/tests/test_feedback_api.py +++ b/server/vbv_lernwelt/feedback/tests/test_feedback_api.py @@ -190,8 +190,7 @@ class FeedbackDetailApiTestCase(FeedbackApiBaseTestCase): "satisfaction": [1, 4, 2], "goal_attainment": [2, 4, 3], "proficiency": [20, 60, 80], - "received_materials": [True, False, True], - "materials_rating": [3, 2, 1], + "preparation_task_clarity": [True, False, True], "instructor_competence": [1, 2, 3], "instructor_respect": [40, 80, 100], "instructor_open_feedback": ["super", "ok", "naja"], @@ -214,14 +213,15 @@ class FeedbackDetailApiTestCase(FeedbackApiBaseTestCase): "satisfaction": feedback_data["satisfaction"][i], "goal_attainment": feedback_data["goal_attainment"][i], "proficiency": feedback_data["proficiency"][i], - "received_materials": feedback_data["received_materials"][i], - "materials_rating": feedback_data["materials_rating"][i], + "preparation_task_clarity": feedback_data[ + "preparation_task_clarity" + ][i], "instructor_competence": feedback_data["instructor_competence"][i], "instructor_open_feedback": feedback_data[ "instructor_open_feedback" ][i], - "instructor_respect": feedback_data["instructor_respect"][i], "would_recommend": feedback_data["would_recommend"][i], + "instructor_respect": feedback_data["instructor_respect"][i], "course_positive_feedback": feedback_data[ "course_positive_feedback" ][i], diff --git a/server/vbv_lernwelt/feedback/views.py b/server/vbv_lernwelt/feedback/views.py index 150ae855..5871576f 100644 --- a/server/vbv_lernwelt/feedback/views.py +++ b/server/vbv_lernwelt/feedback/views.py @@ -12,14 +12,13 @@ FEEDBACK_FIELDS = [ "satisfaction", "goal_attainment", "proficiency", - "received_materials", - "materials_rating", "instructor_competence", "instructor_respect", "instructor_open_feedback", "would_recommend", "course_positive_feedback", "course_negative_feedback", + "preparation_task_clarity", ]