From 2d6cee9f9f2c1a248bc5619b42d7148d4d08d406 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Fri, 5 May 2023 12:19:31 +0200 Subject: [PATCH] Add EvaluationSummary --- .../AssignmentEvaluationPage.vue | 21 ++- .../EvaluationContainer.vue | 30 +++- .../EvaluationIntro.vue | 5 +- .../EvaluationSummary.vue | 131 ++++++++++++++++++ .../assignment/AssignmentView.vue | 10 +- .../__tests__/assignmentService.spec.ts | 32 +++++ client/src/services/assignmentService.ts | 38 ++++- client/src/types.ts | 2 +- .../assignment/migrations/0001_initial.py | 5 +- server/vbv_lernwelt/assignment/models.py | 4 +- server/vbv_lernwelt/assignment/services.py | 20 +-- .../assignment/tests/test_assignment_api.py | 10 +- 12 files changed, 262 insertions(+), 46 deletions(-) create mode 100644 client/src/pages/cockpit/assignmentEvaluationPage/EvaluationSummary.vue create mode 100644 client/src/services/__tests__/assignmentService.spec.ts diff --git a/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue b/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue index fada0aef..07cc47e6 100644 --- a/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue +++ b/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue @@ -4,14 +4,9 @@ import EvaluationContainer from "@/pages/cockpit/assignmentEvaluationPage/Evalua import AssignmentSubmissionResponses from "@/pages/learningPath/learningContentPage/assignment/AssignmentSubmissionResponses.vue"; import { useAssignmentStore } from "@/stores/assignmentStore"; import { useCourseSessionsStore } from "@/stores/courseSessions"; -import { - Assignment, - AssignmentCompletion, - CourseSessionAssignmentDetails, - CourseSessionUser, -} from "@/types"; +import { Assignment, CourseSessionAssignmentDetails, CourseSessionUser } from "@/types"; import log from "loglevel"; -import { onMounted, reactive } from "vue"; +import { computed, onMounted, reactive } from "vue"; import { useRouter } from "vue-router"; const props = defineProps<{ @@ -25,14 +20,12 @@ log.debug("AssignmentEvaluationPage created", props.assignmentId, props.userId); export interface StateInterface { assignment: Assignment | undefined; courseSessionAssignmentDetails: CourseSessionAssignmentDetails | undefined; - completionData: AssignmentCompletion | undefined; assignmentUser: CourseSessionUser | undefined; } const state: StateInterface = reactive({ assignment: undefined, courseSessionAssignmentDetails: undefined, - completionData: undefined, assignmentUser: undefined, }); @@ -51,7 +44,7 @@ onMounted(async () => { try { state.assignment = await assignmentStore.loadAssignment(props.assignmentId); - state.completionData = await assignmentStore.loadAssignmentCompletion( + await assignmentStore.loadAssignmentCompletion( props.assignmentId, courseSessionStore.currentCourseSession.id, props.userId @@ -66,11 +59,13 @@ function exit() { path: `/course/${props.courseSlug}/cockpit/assignment`, }); } + +const assignmentCompletion = computed(() => assignmentStore.assignmentCompletion);