Fix typecheck
This commit is contained in:
parent
aca066a376
commit
05c4d471d8
|
|
@ -1,25 +1,33 @@
|
|||
import {useCSRFFetch} from "@/fetchHelpers";
|
||||
import type {CourseStatisticsType} from "@/gql/graphql";
|
||||
import {graphqlClient} from "@/graphql/client";
|
||||
import {COURSE_QUERY, COURSE_SESSION_DETAIL_QUERY} from "@/graphql/queries";
|
||||
import { useCSRFFetch } from "@/fetchHelpers";
|
||||
import type { CourseStatisticsType } from "@/gql/graphql";
|
||||
import { graphqlClient } from "@/graphql/client";
|
||||
import {
|
||||
COMPETENCE_NAVI_CERTIFICATE_QUERY,
|
||||
COURSE_QUERY,
|
||||
COURSE_SESSION_DETAIL_QUERY,
|
||||
} from "@/graphql/queries";
|
||||
import {
|
||||
circleFlatChildren,
|
||||
circleFlatLearningContents,
|
||||
circleFlatLearningUnits,
|
||||
someFinishedInLearningSequence,
|
||||
} from "@/services/circle";
|
||||
import type {DashboardDueDate, DashboardPersonRoleType, DashboardPersonType,} from "@/services/dashboard";
|
||||
import type {
|
||||
DashboardDueDate,
|
||||
DashboardPersonRoleType,
|
||||
DashboardPersonType,
|
||||
} from "@/services/dashboard";
|
||||
import {
|
||||
courseIdForCourseSlug,
|
||||
fetchDashboardDueDates,
|
||||
fetchDashboardPersons,
|
||||
fetchStatisticData,
|
||||
} from "@/services/dashboard";
|
||||
import {presignUpload, uploadFile} from "@/services/files";
|
||||
import {useCompletionStore} from "@/stores/completion";
|
||||
import {useCourseSessionsStore} from "@/stores/courseSessions";
|
||||
import {useDashboardStore} from "@/stores/dashboard";
|
||||
import {useUserStore} from "@/stores/user";
|
||||
import { presignUpload, uploadFile } from "@/services/files";
|
||||
import { useCompletionStore } from "@/stores/completion";
|
||||
import { useCourseSessionsStore } from "@/stores/courseSessions";
|
||||
import { useDashboardStore } from "@/stores/dashboard";
|
||||
import { useUserStore } from "@/stores/user";
|
||||
import type {
|
||||
ActionCompetence,
|
||||
AgentParticipantRelation,
|
||||
|
|
@ -36,16 +44,15 @@ import type {
|
|||
LearningUnitPerformanceCriteria,
|
||||
PerformanceCriteria,
|
||||
} from "@/types";
|
||||
import {useQuery} from "@urql/vue";
|
||||
import { useQuery } from "@urql/vue";
|
||||
import dayjs from "dayjs";
|
||||
import {t} from "i18next";
|
||||
import { t } from "i18next";
|
||||
import orderBy from "lodash/orderBy";
|
||||
import log from "loglevel";
|
||||
import type {ComputedRef, Ref} from "vue";
|
||||
import {computed, onMounted, ref, watchEffect} from "vue";
|
||||
import {type RouteLocationRaw, useRouter} from "vue-router";
|
||||
import {getCertificates} from "./services/competence";
|
||||
import {mergeCompetenceCertificates} from "./pages/competence/utils";
|
||||
import type { ComputedRef, Ref } from "vue";
|
||||
import { computed, onMounted, ref, watchEffect } from "vue";
|
||||
import { type RouteLocationRaw, useRouter } from "vue-router";
|
||||
import { mergeCompetenceCertificates } from "./pages/competence/utils";
|
||||
|
||||
export function useCurrentCourseSession() {
|
||||
/**
|
||||
|
|
@ -177,7 +184,7 @@ export function useCourseData(courseSlug: string) {
|
|||
|
||||
// urql.useQuery is not meant to be used programmatically, so we use graphqlClient.query instead
|
||||
const resultPromise = graphqlClient
|
||||
.query(COURSE_QUERY, {slug: `${courseSlug}`})
|
||||
.query(COURSE_QUERY, { slug: `${courseSlug}` })
|
||||
.toPromise();
|
||||
|
||||
resultPromise.then((result) => {
|
||||
|
|
@ -442,7 +449,7 @@ export function useFileUpload() {
|
|||
const fileInfo = ref({} as { id: string; name: string; url: string });
|
||||
|
||||
async function upload(e: Event) {
|
||||
const {files} = e.target as HTMLInputElement;
|
||||
const { files } = e.target as HTMLInputElement;
|
||||
if (!files?.length) return;
|
||||
|
||||
try {
|
||||
|
|
@ -460,7 +467,7 @@ export function useFileUpload() {
|
|||
}
|
||||
}
|
||||
|
||||
return {upload, error, loading, fileInfo};
|
||||
return { upload, error, loading, fileInfo };
|
||||
}
|
||||
|
||||
export function useMyLearningMentors() {
|
||||
|
|
@ -470,7 +477,7 @@ export function useMyLearningMentors() {
|
|||
|
||||
const fetchMentors = async () => {
|
||||
loading.value = true;
|
||||
const {data} = await useCSRFFetch(
|
||||
const { data } = await useCSRFFetch(
|
||||
`/api/mentor/${currentCourseSessionId}/mentors`
|
||||
).json();
|
||||
learningMentors.value = data.value;
|
||||
|
|
@ -622,7 +629,7 @@ export function useCourseCircleProgress(circles: Ref<CircleType[] | undefined>)
|
|||
return circles.value?.length ?? 0;
|
||||
});
|
||||
|
||||
return {inProgressCirclesCount, circlesCount};
|
||||
return { inProgressCirclesCount, circlesCount };
|
||||
}
|
||||
|
||||
export function useCourseStatisticsv2(courseSlug: string) {
|
||||
|
|
@ -684,7 +691,7 @@ export function useCertificateQuery(
|
|||
});
|
||||
})();
|
||||
|
||||
return {certificatesQuery};
|
||||
return { certificatesQuery };
|
||||
}
|
||||
|
||||
export function useEvaluationWithFeedback() {
|
||||
|
|
@ -695,7 +702,7 @@ export function useEvaluationWithFeedback() {
|
|||
currentCourseSession.value.course.configuration.is_vv
|
||||
);
|
||||
|
||||
return {hasFeedback};
|
||||
return { hasFeedback };
|
||||
}
|
||||
|
||||
export function useVVByLink() {
|
||||
|
|
@ -705,11 +712,11 @@ export function useVVByLink() {
|
|||
() =>
|
||||
router.resolve({
|
||||
name: "accountConfirm",
|
||||
params: {courseType: `vv-${userStore.language}`},
|
||||
params: { courseType: `vv-${userStore.language}` },
|
||||
}).href as RouteLocationRaw
|
||||
);
|
||||
|
||||
return {href};
|
||||
return { href };
|
||||
}
|
||||
|
||||
export function useAllCompetenceCertificates(
|
||||
|
|
@ -719,14 +726,17 @@ export function useAllCompetenceCertificates(
|
|||
const courseSessionsStore = useCourseSessionsStore();
|
||||
const certificateQueries = courseSessionsStore.allCourseSessions.map(
|
||||
(courseSession) => {
|
||||
return useCertificateQuery([userId], courseSlug, courseSession).certificatesQuery;
|
||||
return useCertificateQuery([userId ?? ""], courseSlug, courseSession)
|
||||
.certificatesQuery;
|
||||
}
|
||||
);
|
||||
|
||||
const competenceCertificatesPerCs = computed(() =>
|
||||
certificateQueries.map((query) => {
|
||||
return getCertificates(query.data.value, userId ?? null)
|
||||
?.competence_certificates as unknown as CompetenceCertificate[];
|
||||
return (
|
||||
(query.data.value?.competence_certificate_list
|
||||
?.competence_certificates as unknown as CompetenceCertificate[]) ?? []
|
||||
);
|
||||
})
|
||||
);
|
||||
const isLoaded = computed(() => !certificateQueries.some((q) => q.fetching.value));
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ const documents = {
|
|||
"\n fragment CoursePageFields on CoursePageInterface {\n title\n id\n slug\n content_type\n frontend_url\n }\n": types.CoursePageFieldsFragmentDoc,
|
||||
"\n query attendanceCheckQuery($courseSessionId: ID!) {\n course_session_attendance_course(id: $courseSessionId) {\n id\n attendance_user_list {\n user_id\n status\n }\n }\n }\n": types.AttendanceCheckQueryDocument,
|
||||
"\n query assignmentCompletionQuery(\n $assignmentId: ID!\n $courseSessionId: ID!\n $learningContentId: ID\n $assignmentUserId: UUID\n ) {\n assignment(id: $assignmentId) {\n assignment_type\n needs_expert_evaluation\n max_points\n content_type\n effort_required\n evaluation_description\n evaluation_document_url\n evaluation_tasks\n id\n intro_text\n performance_objectives\n slug\n tasks\n title\n translation_key\n solution_sample {\n id\n url\n }\n competence_certificate {\n ...CoursePageFields\n }\n }\n assignment_completion(\n assignment_id: $assignmentId\n course_session_id: $courseSessionId\n assignment_user_id: $assignmentUserId\n learning_content_page_id: $learningContentId\n ) {\n id\n completion_status\n submitted_at\n evaluation_submitted_at\n evaluation_user {\n id\n first_name\n last_name\n }\n assignment_user {\n avatar_url\n first_name\n last_name\n id\n }\n evaluation_points\n evaluation_max_points\n evaluation_points_deducted\n evaluation_points_deducted_reason\n evaluation_points_final\n\n evaluation_passed\n edoniq_extended_time_flag\n completion_data\n task_completion_data\n }\n }\n": types.AssignmentCompletionQueryDocument,
|
||||
"\n query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!) {\n competence_certificate_list(course_slug: $courseSlug) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completions(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n course_session {\n id\n title\n }\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateQueryDocument,
|
||||
"\n query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!, $userIds: [UUID!]) {\n competence_certificate_list(course_slug: $courseSlug) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completions(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n course_session {\n id\n title\n }\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateQueryDocument,
|
||||
"\n query competenceCertificateForUserQuery(\n $courseSlug: String!\n $courseSessionId: ID!\n $userIds: [UUID!]!\n ) {\n competence_certificate_list(course_slug: $courseSlug, user_ids: $userIds) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completions(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_final\n evaluation_points_deducted\n evaluation_max_points\n evaluation_passed\n evaluation_percent\n assignment_user {\n id\n }\n course_session {\n id\n title\n }\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n": types.CompetenceCertificateForUserQueryDocument,
|
||||
"\n query courseSessionDetail($courseSessionId: ID!) {\n course_session(id: $courseSessionId) {\n id\n title\n course {\n id\n title\n slug\n configuration {\n id\n enable_circle_documents\n enable_learning_mentor\n enable_competence_certificates\n }\n }\n users {\n id\n user_id\n first_name\n last_name\n email\n avatar_url\n role\n circles {\n id\n title\n slug\n }\n optional_attendance\n }\n attendance_courses {\n id\n location\n trainer\n due_date {\n id\n start\n end\n }\n learning_content_id\n learning_content {\n id\n title\n circle {\n id\n title\n slug\n }\n }\n }\n assignments {\n id\n submission_deadline {\n id\n start\n }\n evaluation_deadline {\n id\n start\n }\n learning_content {\n id\n title\n content_assignment {\n id\n title\n assignment_type\n }\n }\n }\n edoniq_tests {\n id\n deadline {\n id\n start\n end\n }\n learning_content {\n id\n title\n content_assignment {\n id\n title\n assignment_type\n }\n }\n }\n }\n }\n": types.CourseSessionDetailDocument,
|
||||
"\n query courseQuery($slug: String!, $user: String) {\n course(slug: $slug) {\n id\n title\n slug\n category_name\n profiles\n course_session_users(id: $user) {\n id\n __typename\n chosen_profile\n course_session {\n id\n }\n }\n configuration {\n id\n enable_circle_documents\n enable_learning_mentor\n enable_competence_certificates\n is_uk\n is_vv\n }\n action_competences {\n competence_id\n ...CoursePageFields\n performance_criteria {\n competence_id\n learning_unit {\n id\n slug\n evaluate_url\n }\n ...CoursePageFields\n }\n }\n learning_path {\n ...CoursePageFields\n topics {\n is_visible\n ...CoursePageFields\n circles {\n description\n goals\n profiles\n is_base_circle\n ...CoursePageFields\n learning_sequences {\n icon\n ...CoursePageFields\n learning_units {\n evaluate_url\n ...CoursePageFields\n performance_criteria {\n ...CoursePageFields\n }\n learning_contents {\n can_user_self_toggle_course_completion\n content_url\n minutes\n description\n ...CoursePageFields\n ... on LearningContentAssignmentObjectType {\n assignment_type\n content_assignment {\n id\n assignment_type\n }\n competence_certificate {\n ...CoursePageFields\n }\n }\n ... on LearningContentEdoniqTestObjectType {\n checkbox_text\n has_extended_time_test\n content_assignment {\n id\n assignment_type\n }\n competence_certificate {\n ...CoursePageFields\n }\n }\n ... on LearningContentRichTextObjectType {\n text\n }\n }\n }\n }\n }\n }\n }\n }\n }\n": types.CourseQueryDocument,
|
||||
|
|
@ -72,7 +72,7 @@ export function graphql(source: "\n query assignmentCompletionQuery(\n $assi
|
|||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!) {\n competence_certificate_list(course_slug: $courseSlug) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completions(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n course_session {\n id\n title\n }\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n"): (typeof documents)["\n query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!) {\n competence_certificate_list(course_slug: $courseSlug) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completions(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n course_session {\n id\n title\n }\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n"];
|
||||
export function graphql(source: "\n query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!, $userIds: [UUID!]) {\n competence_certificate_list(course_slug: $courseSlug) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completions(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n course_session {\n id\n title\n }\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n"): (typeof documents)["\n query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!, $userIds: [UUID!]) {\n competence_certificate_list(course_slug: $courseSlug) {\n ...CoursePageFields\n competence_certificates {\n ...CoursePageFields\n assignments {\n ...CoursePageFields\n assignment_type\n max_points\n competence_certificate_weight\n completions(course_session_id: $courseSessionId) {\n id\n completion_status\n submitted_at\n evaluation_points\n evaluation_points_deducted\n evaluation_points_final\n evaluation_max_points\n evaluation_passed\n course_session {\n id\n title\n }\n }\n learning_content {\n ...CoursePageFields\n circle {\n id\n title\n slug\n }\n }\n }\n }\n }\n }\n"];
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
import {graphql} from "@/gql";
|
||||
import { graphql } from "@/gql";
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
const CoursePageFragment = graphql(`
|
||||
|
|
@ -90,7 +90,11 @@ export const ASSIGNMENT_COMPLETION_QUERY = graphql(`
|
|||
`);
|
||||
|
||||
export const COMPETENCE_NAVI_CERTIFICATE_QUERY = graphql(`
|
||||
query competenceCertificateQuery($courseSlug: String!, $courseSessionId: ID!) {
|
||||
query competenceCertificateQuery(
|
||||
$courseSlug: String!
|
||||
$courseSessionId: ID!
|
||||
$userIds: [UUID!]
|
||||
) {
|
||||
competence_certificate_list(course_slug: $courseSlug) {
|
||||
...CoursePageFields
|
||||
competence_certificates {
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ const getIconName = () => {
|
|||
};
|
||||
|
||||
const openInCircle = (assignment: CompetenceCertificateAssignment) => {
|
||||
if (assignment.completion?.course_session !== currentCourseSession.value) {
|
||||
switchCourseSessionById(assignment.completion!.course_session.id);
|
||||
if (assignment.completions[0]?.course_session !== currentCourseSession.value) {
|
||||
switchCourseSessionById(assignment.completions[0]!.course_session.id);
|
||||
}
|
||||
router.push(assignment.frontend_url);
|
||||
};
|
||||
|
|
@ -48,7 +48,7 @@ const openInCircle = (assignment: CompetenceCertificateAssignment) => {
|
|||
v-if="showCourseSession"
|
||||
:data-cy="`assignment-${assignment.slug}-course-session`"
|
||||
>
|
||||
{{ assignment?.completion?.course_session.title }}
|
||||
{{ assignment?.completions[0]?.course_session.title }}
|
||||
</p>
|
||||
<p class="text-gray-800">
|
||||
<button
|
||||
|
|
|
|||
|
|
@ -57,7 +57,8 @@ const showCourseSession = computed(() => {
|
|||
const currentCourseSession = useCurrentCourseSession();
|
||||
return props.competenceCertificate.assignments.some((assignment) => {
|
||||
return (
|
||||
assignment.completion?.course_session.title !== currentCourseSession.value.title
|
||||
assignment.completions[0]?.course_session.title !==
|
||||
currentCourseSession.value.title
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
<script setup lang="ts">
|
||||
import log from "loglevel";
|
||||
import {computed} from "vue";
|
||||
import type {CompetenceCertificate} from "@/types";
|
||||
import {useAllCompetenceCertificates} from "@/composables";
|
||||
import {getPreviousRoute} from "@/router/history";
|
||||
import { computed } from "vue";
|
||||
import { useAllCompetenceCertificates } from "@/composables";
|
||||
import { getPreviousRoute } from "@/router/history";
|
||||
import CompetenceCertificateComponent from "@/pages/competence/CompetenceCertificateComponent.vue";
|
||||
|
||||
const props = defineProps<{
|
||||
|
|
@ -14,15 +13,7 @@ const props = defineProps<{
|
|||
|
||||
log.debug("CompetenceCertificateDetailPage setup", props);
|
||||
|
||||
|
||||
const competenceCertificates = computed(() => {
|
||||
return (
|
||||
(certificatesQuery.data.value?.competence_certificate_list
|
||||
?.competence_certificates as unknown as CompetenceCertificate[]) ?? []
|
||||
);
|
||||
});
|
||||
|
||||
const {competenceCertificates} = useAllCompetenceCertificates(
|
||||
const { competenceCertificates } = useAllCompetenceCertificates(
|
||||
props.userId,
|
||||
props.courseSlug
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
<script setup lang="ts">
|
||||
import log from "loglevel";
|
||||
import {computed, onMounted} from "vue";
|
||||
import {useAllCompetenceCertificates} from "@/composables";
|
||||
import { computed, onMounted } from "vue";
|
||||
import { useAllCompetenceCertificates } from "@/composables";
|
||||
import CompetenceCertificateComponent from "@/pages/competence/CompetenceCertificateComponent.vue";
|
||||
import {assignmentsUserPoints, calcCompetencesTotalGrade,} from "@/pages/competence/utils";
|
||||
import {useRoute} from "vue-router";
|
||||
import {
|
||||
assignmentsUserPoints,
|
||||
calcCompetencesTotalGrade,
|
||||
} from "@/pages/competence/utils";
|
||||
import { useRoute } from "vue-router";
|
||||
|
||||
const props = defineProps<{
|
||||
courseSlug: string;
|
||||
|
|
@ -15,8 +18,7 @@ log.debug("CompetenceCertificateListPage setup", props);
|
|||
|
||||
const route = useRoute();
|
||||
|
||||
|
||||
const {competenceCertificates} = useAllCompetenceCertificates(
|
||||
const { competenceCertificates } = useAllCompetenceCertificates(
|
||||
props.userId,
|
||||
props.courseSlug
|
||||
);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<script setup lang="ts">
|
||||
import log from "loglevel";
|
||||
import {computed} from "vue";
|
||||
import {useAllCompetenceCertificates, useCurrentCourseSession} from "@/composables";
|
||||
import { computed } from "vue";
|
||||
import { useAllCompetenceCertificates, useCurrentCourseSession } from "@/composables";
|
||||
import {
|
||||
assignmentsUserPoints,
|
||||
calcCompetenceCertificateGrade,
|
||||
|
|
@ -9,10 +9,9 @@ import {
|
|||
competenceCertificateProgressStatusCount,
|
||||
} from "@/pages/competence/utils";
|
||||
import ItProgress from "@/components/ui/ItProgress.vue";
|
||||
import SelfEvaluationAndFeedbackOverview
|
||||
from "@/components/selfEvaluationFeedback/SelfEvaluationAndFeedbackOverview.vue";
|
||||
import {useUserStore} from "@/stores/user";
|
||||
import {useRouter} from "vue-router";
|
||||
import SelfEvaluationAndFeedbackOverview from "@/components/selfEvaluationFeedback/SelfEvaluationAndFeedbackOverview.vue";
|
||||
import { useUserStore } from "@/stores/user";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
const props = defineProps<{
|
||||
courseSlug: string;
|
||||
|
|
@ -22,16 +21,7 @@ log.debug("CompetenceIndexPage setup", props);
|
|||
|
||||
const user = useUserStore();
|
||||
|
||||
const certificatesQuery = useQuery({
|
||||
query: COMPETENCE_NAVI_CERTIFICATE_QUERY,
|
||||
variables: {
|
||||
courseSlug: props.courseSlug,
|
||||
courseSessionId: courseSession.value.id,
|
||||
userIds: user.id,
|
||||
},
|
||||
});
|
||||
|
||||
const {competenceCertificates, isLoaded} = useAllCompetenceCertificates(
|
||||
const { competenceCertificates, isLoaded } = useAllCompetenceCertificates(
|
||||
user.id,
|
||||
props.courseSlug
|
||||
);
|
||||
|
|
|
|||
|
|
@ -120,10 +120,10 @@ export function mergeCompetenceCertificates(
|
|||
if (!existingAssignment) {
|
||||
mergedCertificate.assignments.push(assignment);
|
||||
} else if (
|
||||
assignment.completion != null &&
|
||||
(existingAssignment.completion == null ||
|
||||
dayjs(existingAssignment.completion.evaluation_submitted_at).isBefore(
|
||||
assignment.completion.evaluation_submitted_at
|
||||
assignment.completions[0] != null &&
|
||||
(existingAssignment.completions[0] == null ||
|
||||
dayjs(existingAssignment.completions[0].evaluation_submitted_at).isBefore(
|
||||
assignment.completions[0].evaluation_submitted_at
|
||||
))
|
||||
) {
|
||||
mergedCertificate.assignments.splice(
|
||||
|
|
|
|||
Loading…
Reference in New Issue