From d673f2fdc9e90f35d395c2a8c87f3a5575db57c0 Mon Sep 17 00:00:00 2001 From: Reto Aebersold Date: Wed, 20 Sep 2023 19:01:39 +0200 Subject: [PATCH] User status only for selected circle --- .../pages/cockpit/cockpitPage/CockpitPage.vue | 36 +++++-------------- client/src/stores/competence.ts | 8 ++--- 2 files changed, 12 insertions(+), 32 deletions(-) diff --git a/client/src/pages/cockpit/cockpitPage/CockpitPage.vue b/client/src/pages/cockpit/cockpitPage/CockpitPage.vue index c6a94f25..9d27a3d3 100644 --- a/client/src/pages/cockpit/cockpitPage/CockpitPage.vue +++ b/client/src/pages/cockpit/cockpitPage/CockpitPage.vue @@ -8,7 +8,6 @@ import SubmissionsOverview from "@/pages/cockpit/cockpitPage/SubmissionsOverview import { useCockpitStore } from "@/stores/cockpit"; import { useCompetenceStore } from "@/stores/competence"; import { useLearningPathStore } from "@/stores/learningPath"; -import groupBy from "lodash/groupBy"; import log from "loglevel"; import CockpitDates from "@/pages/cockpit/cockpitPage/CockpitDates.vue"; import ItDropdownSelect from "@/components/ui/ItDropdownSelect.vue"; @@ -24,13 +23,13 @@ const competenceStore = useCompetenceStore(); const learningPathStore = useLearningPathStore(); const courseSession = useCurrentCourseSession(); -function userCountStatusForCircle(userId: string, translationKey: string) { +function userCountStatusForCircle(userId: string) { if (!cockpitStore.selectedCircle) return { FAIL: 0, SUCCESS: 0, UNKNOWN: 0 }; - const criteria = competenceStore.flatPerformanceCriteria(userId, [ - cockpitStore.selectedCircle.translation_key, - ]); - const grouped = groupBy(criteria, "circle.translation_key"); - return competenceStore.calcStatusCount(grouped[translationKey] as []); + const criteria = competenceStore.flatPerformanceCriteria( + userId, + cockpitStore.selectedCircle.id + ); + return competenceStore.calcStatusCount(criteria); } @@ -127,11 +126,9 @@ function userCountStatusForCircle(userId: string, translationKey: string) { csu.user_id ) as LearningPath " - :profile-user-id="`${csu.user_id}`" :show-circle-translation-keys="[ cockpitStore.selectedCircle.translation_key, ]" - :pull-up="false" diagram-type="singleSmall" class="mr-4" > @@ -144,12 +141,7 @@ function userCountStatusForCircle(userId: string, translationKey: string) { class="mr-2 inline-block h-8 w-8" >

- {{ - userCountStatusForCircle( - csu.user_id, - cockpitStore.selectedCircle.translation_key - ).FAIL - }} + {{ userCountStatusForCircle(csu.user_id).FAIL }}

  • @@ -157,12 +149,7 @@ function userCountStatusForCircle(userId: string, translationKey: string) { class="mr-2 inline-block h-8 w-8" >

    - {{ - userCountStatusForCircle( - csu.user_id, - cockpitStore.selectedCircle.translation_key - ).SUCCESS - }} + {{ userCountStatusForCircle(csu.user_id).SUCCESS }}

  • @@ -170,12 +157,7 @@ function userCountStatusForCircle(userId: string, translationKey: string) { class="mr-2 inline-block h-8 w-8" >

    - {{ - userCountStatusForCircle( - csu.user_id, - cockpitStore.selectedCircle.translation_key - ).UNKNOWN - }} + {{ userCountStatusForCircle(csu.user_id).UNKNOWN }}

  • diff --git a/client/src/stores/competence.ts b/client/src/stores/competence.ts index bd83b35a..4ce74c16 100644 --- a/client/src/stores/competence.ts +++ b/client/src/stores/competence.ts @@ -70,7 +70,7 @@ export const useCompetenceStore = defineStore({ }, flatPerformanceCriteria( userId: string | undefined = undefined, - circleTranslationKeys: string[] | undefined = undefined + circleId: number | undefined = undefined ) { if (!userId) { const userStore = useUserStore(); @@ -94,10 +94,8 @@ export const useCompetenceStore = defineStore({ ); } - if (circleTranslationKeys) { - criteria = criteria.filter((c) => - circleTranslationKeys.includes(c.circle.translation_key) - ); + if (circleId) { + criteria = criteria.filter((c) => circleId === c.circle.id); } return criteria;