From c180fd4406f4b773b452b751cc22ed0161c3da69 Mon Sep 17 00:00:00 2001 From: Reto Aebersold Date: Mon, 19 Feb 2024 13:35:55 +0100 Subject: [PATCH] feat: circle status cleanup --- .../components/circle/CompletionStatus.vue | 32 ++++ .../circlePage/LearningSequence.vue | 137 +++++++----------- client/src/services/circle.ts | 31 ++-- ...icon-lc-competence-certificate-checked.svg | 23 +-- 4 files changed, 107 insertions(+), 116 deletions(-) create mode 100644 client/src/components/circle/CompletionStatus.vue diff --git a/client/src/components/circle/CompletionStatus.vue b/client/src/components/circle/CompletionStatus.vue new file mode 100644 index 00000000..c75781e4 --- /dev/null +++ b/client/src/components/circle/CompletionStatus.vue @@ -0,0 +1,32 @@ + + + diff --git a/client/src/pages/learningPath/circlePage/LearningSequence.vue b/client/src/pages/learningPath/circlePage/LearningSequence.vue index 2457c591..304cbd3c 100644 --- a/client/src/pages/learningPath/circlePage/LearningSequence.vue +++ b/client/src/pages/learningPath/circlePage/LearningSequence.vue @@ -4,28 +4,24 @@ import { showIcon } from "@/pages/learningPath/circlePage/learningSequenceUtils" import { useCircleStore } from "@/stores/circle"; import type { CircleType, - CourseCompletionStatus, LearningContent, LearningContentAssignment, LearningContentEdoniqTest, - LearningContentWithCompletion, LearningSequence, } from "@/types"; import type { Ref } from "vue"; import { computed } from "vue"; -import { - itCheckboxDefaultIconCheckedTailwindClass, - itCheckboxDefaultIconUncheckedTailwindClass, -} from "@/constants"; -import ItCheckbox from "@/components/ui/ItCheckbox.vue"; + import { allFinishedInLearningSequence, - calcSelfEvaluationStatus, circleFlatLearningContents, + performanceCriteriaHasStatus, + performanceCriteriaStatusCount, someFinishedInLearningSequence, } from "@/services/circle"; -import { useCourseDataWithCompletion } from "@/composables"; + import { findLastIndex } from "lodash"; +import CompletionStatus from "@/components/circle/CompletionStatus.vue"; type Props = { courseSlug: string; @@ -41,16 +37,6 @@ const props = withDefaults(defineProps(), { const circleStore = useCircleStore(); -const lpQueryResult = useCourseDataWithCompletion(props.courseSlug); - -function toggleCompleted(learningContent: LearningContentWithCompletion) { - let completionStatus: CourseCompletionStatus = "SUCCESS"; - if (learningContent.completion_status === "SUCCESS") { - completionStatus = "FAIL"; - } - lpQueryResult.markCompletion(learningContent, completionStatus); -} - const someFinished = computed(() => { if (props.learningSequence) { return someFinishedInLearningSequence(props.learningSequence); @@ -116,20 +102,6 @@ function belongsToCompetenceCertificate(lc: LearningContent) { type LearninContentWithCompetenceCertificate = | LearningContentAssignment | LearningContentEdoniqTest; - -function checkboxIconCheckedTailwindClass(lc: LearningContent) { - if (belongsToCompetenceCertificate(lc)) { - return "bg-[url(/static/icons/icon-lc-competence-certificate-checked.svg)]"; - } - return itCheckboxDefaultIconCheckedTailwindClass; -} - -function checkboxIconUncheckedTailwindClass(lc: LearningContent) { - if (belongsToCompetenceCertificate(lc)) { - return "bg-[url(/static/icons/icon-lc-competence-certificate.svg)]"; - } - return itCheckboxDefaultIconUncheckedTailwindClass; -}