User status only for selected circle

This commit is contained in:
Reto Aebersold 2023-09-20 19:01:39 +02:00
parent 4ba12cbec8
commit d673f2fdc9
2 changed files with 12 additions and 32 deletions

View File

@ -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);
}
</script>
@ -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"
></LearningPathDiagram>
@ -144,12 +141,7 @@ function userCountStatusForCircle(userId: string, translationKey: string) {
class="mr-2 inline-block h-8 w-8"
></it-icon-smiley-thinking>
<p class="text-bold inline-block w-6">
{{
userCountStatusForCircle(
csu.user_id,
cockpitStore.selectedCircle.translation_key
).FAIL
}}
{{ userCountStatusForCircle(csu.user_id).FAIL }}
</p>
</div>
<li class="mr-6 flex flex-row items-center">
@ -157,12 +149,7 @@ function userCountStatusForCircle(userId: string, translationKey: string) {
class="mr-2 inline-block h-8 w-8"
></it-icon-smiley-happy>
<p class="text-bold inline-block w-6">
{{
userCountStatusForCircle(
csu.user_id,
cockpitStore.selectedCircle.translation_key
).SUCCESS
}}
{{ userCountStatusForCircle(csu.user_id).SUCCESS }}
</p>
</li>
<li class="flex flex-row items-center">
@ -170,12 +157,7 @@ function userCountStatusForCircle(userId: string, translationKey: string) {
class="mr-2 inline-block h-8 w-8"
></it-icon-smiley-neutral>
<p class="text-bold inline-block w-6">
{{
userCountStatusForCircle(
csu.user_id,
cockpitStore.selectedCircle.translation_key
).UNKNOWN
}}
{{ userCountStatusForCircle(csu.user_id).UNKNOWN }}
</p>
</li>
</div>

View File

@ -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;