From 964c1f72760b08b005390ca70f484a17f73a21f8 Mon Sep 17 00:00:00 2001 From: Livio Bieri Date: Thu, 22 Feb 2024 12:58:59 +0100 Subject: [PATCH] feat: kompetenznavi overview --- .../FeedbackByLearningUnitSummary.vue | 8 +- .../pages/competence/CompetenceIndexPage.vue | 93 +++++++++++++++---- .../SelfEvaluationAndFeedbackPage.vue | 13 ++- client/src/services/selfEvaluationFeedback.ts | 6 +- .../self_evaluation_feedback/urls.py | 2 +- .../self_evaluation_feedback/utils.py | 4 + .../self_evaluation_feedback/views.py | 34 +++++-- 7 files changed, 128 insertions(+), 32 deletions(-) diff --git a/client/src/components/selfEvaluationFeedback/FeedbackByLearningUnitSummary.vue b/client/src/components/selfEvaluationFeedback/FeedbackByLearningUnitSummary.vue index a1c9bfcc..90d147a3 100644 --- a/client/src/components/selfEvaluationFeedback/FeedbackByLearningUnitSummary.vue +++ b/client/src/components/selfEvaluationFeedback/FeedbackByLearningUnitSummary.vue @@ -8,7 +8,7 @@ const props = defineProps<{ }>(); const hasFeedbackReceived = computed(() => { - return props.summary.feedback_assessment?.provider_user !== undefined; + return props.summary.feedback_assessment?.submitted_by_provider ?? false; }); const feedbackProviderAvatar = computed(() => { @@ -46,19 +46,19 @@ const feedbackProviderName = computed(() => {
diff --git a/client/src/pages/competence/CompetenceIndexPage.vue b/client/src/pages/competence/CompetenceIndexPage.vue index 5ed995cf..f2469235 100644 --- a/client/src/pages/competence/CompetenceIndexPage.vue +++ b/client/src/pages/competence/CompetenceIndexPage.vue @@ -4,14 +4,14 @@ import { COMPETENCE_NAVI_CERTIFICATE_QUERY } from "@/graphql/queries"; import { useQuery } from "@urql/vue"; import { computed } from "vue"; import type { CompetenceCertificate } from "@/types"; -import { useCurrentCourseSession, useCourseDataWithCompletion } from "@/composables"; +import { useCurrentCourseSession } from "@/composables"; import { assignmentsMaxEvaluationPoints, assignmentsUserPoints, competenceCertificateProgressStatusCount, } from "@/pages/competence/utils"; +import { useSelfEvaluationFeedbackSummaries } from "@/services/selfEvaluationFeedback"; import ItProgress from "@/components/ui/ItProgress.vue"; -import { calcPerformanceCriteriaStatusCount } from "@/services/competence"; const props = defineProps<{ courseSlug: string; @@ -20,7 +20,6 @@ const props = defineProps<{ log.debug("CompetenceIndexPage setup", props); const courseSession = useCurrentCourseSession(); -const courseData = useCourseDataWithCompletion(props.courseSlug); const certificatesQuery = useQuery({ query: COMPETENCE_NAVI_CERTIFICATE_QUERY, @@ -49,9 +48,23 @@ const userPointsEvaluatedAssignments = computed(() => { return assignmentsUserPoints(allAssignments.value); }); -const performanceCriteriaStatusCount = computed(() => { - return calcPerformanceCriteriaStatusCount(courseData.flatPerformanceCriteria.value); -}); +const selfEvaluationFeedbackSummaries = useSelfEvaluationFeedbackSummaries( + useCurrentCourseSession().value.id +); + +const selfAssessmentCounts = computed( + () => selfEvaluationFeedbackSummaries.aggregates.value?.self_assessment +); + +const feedbackEvaluationCounts = computed( + () => selfEvaluationFeedbackSummaries.aggregates.value?.feedback_assessment +); + +const isFeedbackEvaluationVisible = computed( + () => + selfEvaluationFeedbackSummaries.aggregates.value?.feedback_assessment_visible ?? + false +);