diff --git a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationContainer.vue b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationContainer.vue index f943f35c..0b81d59e 100644 --- a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationContainer.vue +++ b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationContainer.vue @@ -84,6 +84,18 @@ const taskExpertDataText = computed(() => { return result; }); +const text = computed(() => { + if (props.assignment.assignment_type === "CASEWORK") { + return { + evaluationFinish: "a.Bewertung abschliessen", + }; + } else { + return { + evaluationFinish: "a.Feedback abschliessen", + }; + } +}); + function nextButtonEnabled() { if (inEvaluationTask.value) { return taskExpertDataText.value ?? false; @@ -159,7 +171,7 @@ function finishButtonEnabled() { @click="emit('close')" > - {{ $t("a.Bewertung abschliessen") }} + {{ $t(text.evaluationFinish) }} diff --git a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationIntro.vue b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationIntro.vue index 89a174cf..87e6d02b 100644 --- a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationIntro.vue +++ b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationIntro.vue @@ -3,6 +3,7 @@ import { useCurrentCourseSession } from "@/composables"; import { UPSERT_ASSIGNMENT_COMPLETION_MUTATION } from "@/graphql/mutations"; import type { Assignment, AssignmentCompletion, CourseSessionUser } from "@/types"; import { useMutation } from "@urql/vue"; +import { computed } from "vue"; import dayjs, { Dayjs } from "dayjs"; import * as log from "loglevel"; @@ -17,6 +18,26 @@ const emit = defineEmits(["startEvaluation"]); log.debug("EvaluationIntro setup"); +const text = computed(() => { + if (props.assignment.assignment_type === "CASEWORK") { + return { + evaluationTitle: "a.Bewertung", + evaluationInstruction: "assignment.evaluationInstrumentDescriptionText", + evaluationStart: "a.Bewertung starten", + evaluationContinue: "a.Bewertung fortsetzen", + evaluationView: "a.Bewertung ansehen", + }; + } else { + return { + evaluationTitle: "Feedback", + evaluationInstruction: "assignment.evaluationInstrumentDescriptionTextFeedback", + evaluationStart: "a.Feedback geben", + evaluationContinue: "a.Feedback fortsetzen", + evaluationView: "a.Feedback ansehen", + }; + } +}); + const courseSession = useCurrentCourseSession(); const upsertAssignmentCompletionMutation = useMutation( @@ -57,7 +78,7 @@ async function startEvaluation() { }} -

{{ $t("a.Bewertung") }}

+

{{ $t(text.evaluationTitle) }}

{{ @@ -72,10 +93,10 @@ async function startEvaluation() {

- {{ $t("assignment.evaluationInstrumentDescriptionText") }} + {{ $t(text.evaluationInstruction) }}

-

+

{{ $t("a.Beurteilungsinstrument anzeigen") }} @@ -92,16 +113,16 @@ async function startEvaluation() { props.assignmentCompletion.completion_status === 'EVALUATION_IN_PROGRESS' " > - {{ $t("a.Bewertung fortsetzen") }} + {{ $t(text.evaluationContinue) }} - {{ $t("a.Bewertung ansehen") }} + {{ $t(text.evaluationView) }} - {{ $t("a.Bewertung starten") }} + {{ $t(text.evaluationStart) }} diff --git a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationSummary.vue b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationSummary.vue index 52e20e80..094a6f1d 100644 --- a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationSummary.vue +++ b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationSummary.vue @@ -40,6 +40,30 @@ const upsertAssignmentCompletionMutation = useMutation( UPSERT_ASSIGNMENT_COMPLETION_MUTATION ); +const text = computed(() => { + if (props.assignment.assignment_type === "CASEWORK") { + return { + evaluationCriteria: "a.Beurteilungskriterium", + evaluationReason: "assignment.evaluationReason", + evaluationDescription: "assignment.evaluationInstrumentDescriptionText", + evaluationSubmit: "a.Bewertung freigeben", + evaluationSubmission: "a.Bewertung Freigabe", + evaluationForUser: "a.Bewertung von x y", + evaluationSuccess: "a.Deine Bewertung für x y wurde freigegeben.", + }; + } else { + return { + evaluationCriteria: "Feedback", + evaluationReason: "assignment.evaluationFeedback", + evaluationDescription: "a.assignment.evaluationFeedbackDescriptionText", + evaluationSubmit: "a.Feedback freigeben", + evaluationSubmission: "a.Feedback Freigabe", + evaluationForUser: "a.Feedback von x y", + evaluationSuccess: "a.Dein Feedback für x y wurde freigegeben.", + }; + } +}); + async function submitEvaluation() { upsertAssignmentCompletionMutation.executeMutation({ assignmentId: props.assignment.id, @@ -93,12 +117,20 @@ const evaluationUser = computed(() => {

- Bewertung von {{ evaluationUser.first_name }} {{ evaluationUser.last_name }} + {{ + $t(text.evaluationForUser, { + x: evaluationUser.first_name, + y: evaluationUser.last_name, + }) + }}

-

{{ $t("a.Bewertung Freigabe") }}

+

{{ $t(text.evaluationSubmission) }}

-
+
{{ userPoints }}
@@ -116,6 +148,7 @@ const evaluationUser = computed(() => {
{

- {{ $t("assignment.evaluationInstrumentDescriptionText") }} + {{ $t(text.evaluationDescription) }}

-

+

{ data-cy="submit-evaluation" @click="submitEvaluation()" > - {{ $t("a.Bewertung freigeben") }} + {{ $t(text.evaluationSubmit) }}

@@ -172,7 +210,7 @@ const evaluationUser = computed(() => {
- {{ $t("a.Beurteilungskriterium") }} {{ index + 1 }}: + {{ $t(text.evaluationCriteria) }} {{ index + 1 }}: {{ task.value.title }}
{ open-links-in-new-tab /> -
+
{{ evaluationForTask(task).points }} Punkte
- {{ $t("a.Begründung") }}: + {{ $t(text.evaluationReason) }}: {{ evaluationForTask(task).text }}
diff --git a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationTask.vue b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationTask.vue index 7beda376..d33ac158 100644 --- a/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationTask.vue +++ b/client/src/pages/cockpit/assignmentEvaluationPage/EvaluationTask.vue @@ -38,6 +38,22 @@ const expertData = computed(() => { return data; }); +const text = computed(() => { + if (props.assignment.assignment_type === "CASEWORK") { + return { + evaluationCriteria: "a.Beurteilungskriterium", + evaluationReason: "assignment.evaluationReason", + evaluationReasonPlaceholder: "assignment.justificationRequiredText", + }; + } else { + return { + evaluationCriteria: "Feedback", + evaluationReason: "assignment.evaluationFeedback", + evaluationReasonPlaceholder: "assignment.feedbackRequiredText", + }; + } +}); + function changePoints(points: number) { log.debug("changePoints", points); evaluateAssignmentCompletion({ @@ -88,7 +104,7 @@ const evaluateAssignmentCompletionDebounced = useDebounceFn(
- {{ $t("a.Beurteilungskriterium") }} {{ taskIndex + 1 }} / + {{ $t(text.evaluationCriteria) }} {{ taskIndex + 1 }} / {{ props.assignment.evaluation_tasks.length }} {{ task.value.title }}
@@ -127,9 +143,9 @@ const evaluateAssignmentCompletionDebounced = useDebounceFn( diff --git a/client/src/utils/utils.ts b/client/src/utils/utils.ts index 093f1f54..f95ddc5a 100644 --- a/client/src/utils/utils.ts +++ b/client/src/utils/utils.ts @@ -41,9 +41,9 @@ export function getAssignmentTypeTitle(assignmentType: AssignmentType): string { switch (assignmentType) { case "CASEWORK": - return t("learningContentTypes.mandatory_casework"); + return t("learningContentTypes.casework"); case "PRAXIS_ASSIGNMENT": - return t("learningContentTypes.voluntary_casework"); + return t("learningContentTypes.praxisAssignment"); case "PREP_ASSIGNMENT": return t("learningContentTypes.prepAssignment"); case "REFLECTION": diff --git a/server/vbv_lernwelt/assignment/creators/create_assignments.py b/server/vbv_lernwelt/assignment/creators/create_assignments.py index d51c9c7f..db421071 100644 --- a/server/vbv_lernwelt/assignment/creators/create_assignments.py +++ b/server/vbv_lernwelt/assignment/creators/create_assignments.py @@ -4208,6 +4208,7 @@ def create_vv_gewinnen_casework(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID): parent=assignment_list_page, title="Mein Kundenstamm", effort_required="60 bis 90 Minuten", + assignment_type=AssignmentType.PRAXIS_ASSIGNMENT.name, intro_text=replace_whitespace( """

Thema

@@ -4588,6 +4589,7 @@ def create_vv_einkommenssicherung_casework( parent=assignment_list_page, title="Heirat: Was ändert sich", effort_required="45 bis 90 Minuten", + assignment_type=AssignmentType.PRAXIS_ASSIGNMENT.name, intro_text=replace_whitespace( """

Thema

@@ -4826,6 +4828,7 @@ def create_vv_gesundheit_casework(course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID) parent=assignment_list_page, title="Krankenversicherung: Passt die Lösung noch?", effort_required="60 bis 90 Minuten", + assignment_type=AssignmentType.PRAXIS_ASSIGNMENT.name, intro_text=replace_whitespace( """

Ausgangslage

diff --git a/server/vbv_lernwelt/assignment/tests/test_services.py b/server/vbv_lernwelt/assignment/tests/test_services.py index 1c747e5a..3708a8d0 100644 --- a/server/vbv_lernwelt/assignment/tests/test_services.py +++ b/server/vbv_lernwelt/assignment/tests/test_services.py @@ -261,7 +261,7 @@ class UpdateAssignmentCompletionTestCase(TestCase): user_text_input = find_first( subtasks, pred=lambda x: (value := x.get("value")) - and value.get("text", "").startswith( + and value.get("text", "").startswith( "Gibt es zusätzliche Deckungen, die du der Person empfehlen würdest?" ), ) @@ -344,7 +344,7 @@ class UpdateAssignmentCompletionTestCase(TestCase): user_text_input = find_first( subtasks, pred=lambda x: (value := x.get("value")) - and value.get("text", "").startswith( + and value.get("text", "").startswith( "Gibt es zusätzliche Deckungen, die du der Person empfehlen würdest?" ), ) @@ -396,7 +396,7 @@ class UpdateAssignmentCompletionTestCase(TestCase): user_text_input = find_first( subtasks, pred=lambda x: (value := x.get("value")) - and value.get("text", "").startswith( + and value.get("text", "").startswith( "Gibt es zusätzliche Deckungen, die du der Person empfehlen würdest?" ), ) @@ -437,7 +437,7 @@ class UpdateAssignmentCompletionTestCase(TestCase): user_text_input = find_first( subtasks, pred=lambda x: (value := x.get("value")) - and value.get("text", "").startswith( + and value.get("text", "").startswith( "Gibt es zusätzliche Deckungen, die du der Person empfehlen würdest?" ), ) diff --git a/server/vbv_lernwelt/importer/services.py b/server/vbv_lernwelt/importer/services.py index 312cc87f..be64194a 100644 --- a/server/vbv_lernwelt/importer/services.py +++ b/server/vbv_lernwelt/importer/services.py @@ -459,8 +459,7 @@ def create_or_update_course_session_assignment( csa.submission_deadline.save() elif ( - csa.learning_content.assignment_type - == AssignmentType.CASEWORK.value + csa.learning_content.assignment_type == AssignmentType.CASEWORK.value and start ): csa.submission_deadline.start = timezone.make_aware(