From dcf450339d5daf65bd6919b4a93c9f1585e7ea97 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Tue, 10 Oct 2023 15:02:03 +0200 Subject: [PATCH] Every REST response returns `id`-field as string --- .../components/dueDates/dueDatesTestData.ts | 60 -------------- .../components/feedback/feedbackSummary.vue | 4 +- .../header/AccountMenuContent.stories.ts | 4 +- .../components/header/AccountMenuContent.vue | 2 +- .../components/header/CourseSessionsMenu.vue | 2 +- client/src/components/ui/ItDropdownSelect.vue | 2 +- client/src/composables.ts | 4 +- client/src/pages/AppointmentsPage.vue | 6 +- .../AssignmentEvaluationPage.vue | 4 +- .../EvaluationIntro.vue | 6 +- .../EvaluationSummary.vue | 6 +- .../EvaluationTask.vue | 6 +- .../AssignmentSubmissionProgress.vue | 2 +- .../FeedbackSubmissionProgress.vue | 2 +- .../cockpitPage/SubmissionsOverview.vue | 4 +- .../documentPage/DocumentUploadForm.vue | 4 +- .../CompetenceCertificateDetailPage.vue | 2 +- .../CompetenceCertificateListPage.vue | 2 +- .../pages/competence/CompetenceIndexPage.vue | 2 +- .../assignment/AssignmentSubmissionView.vue | 10 +-- .../assignment/AssignmentTaskView.vue | 10 +-- .../assignment/AssignmentView.vue | 14 ++-- .../blocks/EdoniqTestBlock.vue | 6 +- .../feedback/FeedbackBlock.vue | 4 +- client/src/services/assignmentService.ts | 6 +- client/src/services/circle.ts | 2 +- client/src/services/files.ts | 6 +- client/src/services/learningPath.ts | 2 +- .../stores/__tests__/courseSession.spec.ts | 4 +- client/src/stores/competence.ts | 2 +- client/src/stores/completion.ts | 4 +- client/src/stores/courseSessions.ts | 6 +- client/src/stores/user.ts | 2 +- client/src/types.ts | 55 +++++-------- client/src/utils/eventBus.ts | 2 +- server/vbv_lernwelt/core/utils.py | 6 ++ .../vbv_lernwelt/course/serializer_helpers.py | 2 + server/vbv_lernwelt/course/serializers.py | 21 +++-- .../course_session/serializers.py | 81 ------------------- server/vbv_lernwelt/duedate/serializers.py | 12 ++- server/vbv_lernwelt/learnpath/serializers.py | 4 +- 41 files changed, 123 insertions(+), 262 deletions(-) delete mode 100644 client/src/components/dueDates/dueDatesTestData.ts diff --git a/client/src/components/dueDates/dueDatesTestData.ts b/client/src/components/dueDates/dueDatesTestData.ts deleted file mode 100644 index fe14ff32..00000000 --- a/client/src/components/dueDates/dueDatesTestData.ts +++ /dev/null @@ -1,60 +0,0 @@ -import dayjs from "dayjs"; - -export const dueDatesTestData = () => { - return [ - { - id: 1, - start: dayjs("2023-06-14T15:00:00+02:00"), - end: dayjs("2023-06-14T18:00:00+02:00"), - title: "Präsenzkurs Kickoff", - url: "/course/überbetriebliche-kurse/learn/kickoff/präsenzkurs-kickoff", - course_session: 2, - page: 383, - }, - { - id: 2, - start: dayjs("2023-06-15T15:00:00+02:00"), - end: dayjs("2023-06-15T18:00:00+02:00"), - title: "Präsenzkurs Basis", - url: "/course/überbetriebliche-kurse/learn/basis/präsenzkurs-basis", - course_session: 2, - page: 397, - }, - { - id: 3, - start: dayjs("2023-06-16T15:00:00+02:00"), - end: dayjs("2023-06-16T18:00:00+02:00"), - title: "Präsenzkurs Fahrzeug", - url: "/course/überbetriebliche-kurse/learn/fahrzeug/präsenzkurs-fahrzeug", - course_session: 2, - page: 413, - }, - { - id: 4, - start: dayjs("2023-06-16T15:00:00+02:00"), - end: dayjs("2023-06-16T18:00:00+02:00"), - title: "Präsenzkurs Flugzeuge", - url: "/course/überbetriebliche-kurse/learn/fahrzeug/präsenzkurs-fahrzeug", - course_session: 2, - page: 413, - }, - { - id: 5, - start: dayjs("2023-07-16T11:00:00+02:00"), - end: dayjs("2023-07-16T18:00:00+02:00"), - title: "Präsenzkurs Motorräder", - url: "/course/überbetriebliche-kurse/learn/fahrzeug/präsenzkurs-fahrzeug", - course_session: 2, - page: 413, - }, - { - id: 6, - start: dayjs("2023-08-09T15:00:00+02:00"), - end: dayjs("2023-08-09T19:00:00+02:00"), - title: "Präsenzkurs Fahrräder", - url: "/course/überbetriebliche-kurse/learn/fahrzeug/präsenzkurs-fahrzeug", - course_session: 2, - page: 413, - }, - ]; -}; diff --git a/client/src/components/feedback/feedbackSummary.vue b/client/src/components/feedback/feedbackSummary.vue index 967ba7cc..bccfa7bb 100644 --- a/client/src/components/feedback/feedbackSummary.vue +++ b/client/src/components/feedback/feedbackSummary.vue @@ -37,7 +37,7 @@ import { onMounted, ref, watch } from "vue"; import type { Circle } from "@/services/circle"; interface FeedbackSummary { - circle_id: number; + circle_id: string; count: number; } @@ -65,7 +65,7 @@ function makeSummary( const props = defineProps<{ selctedCircles: string[]; circles: Circle[]; - courseSessionId: number; + courseSessionId: string; url: string; }>(); diff --git a/client/src/components/header/AccountMenuContent.stories.ts b/client/src/components/header/AccountMenuContent.stories.ts index 4b715451..4af4d2de 100644 --- a/client/src/components/header/AccountMenuContent.stories.ts +++ b/client/src/components/header/AccountMenuContent.stories.ts @@ -23,11 +23,11 @@ type Story = StoryObj; const courseSessions = [ { - id: 1, + id: "1", title: "Bern 2023 a", }, { - id: 2, + id: "2", title: "Zürich 2023 a", }, ]; diff --git a/client/src/components/header/AccountMenuContent.vue b/client/src/components/header/AccountMenuContent.vue index 166ce523..91f12f17 100644 --- a/client/src/components/header/AccountMenuContent.vue +++ b/client/src/components/header/AccountMenuContent.vue @@ -6,7 +6,7 @@ import type { CourseSession } from "@/types"; const props = defineProps<{ courseSessions: CourseSession[]; user: UserState; - selectedCourseSession?: number; + selectedCourseSession?: string; }>(); const emit = defineEmits(["selectCourseSession", "logout"]); diff --git a/client/src/components/header/CourseSessionsMenu.vue b/client/src/components/header/CourseSessionsMenu.vue index 2212b07c..6aca1aee 100644 --- a/client/src/components/header/CourseSessionsMenu.vue +++ b/client/src/components/header/CourseSessionsMenu.vue @@ -36,7 +36,7 @@ export interface Item { export interface Props { items: CourseSession[]; - selected?: number; + selected?: string; } const props = defineProps(); diff --git a/client/src/components/ui/ItDropdownSelect.vue b/client/src/components/ui/ItDropdownSelect.vue index 9421c218..1897de01 100644 --- a/client/src/components/ui/ItDropdownSelect.vue +++ b/client/src/components/ui/ItDropdownSelect.vue @@ -20,7 +20,7 @@ const emit = defineEmits<{ const props = withDefaults(defineProps(), { modelValue: () => { return { - id: -1, + id: "-1", name: "", }; }, diff --git a/client/src/composables.ts b/client/src/composables.ts index 36c70c78..e2a4d99c 100644 --- a/client/src/composables.ts +++ b/client/src/composables.ts @@ -33,14 +33,14 @@ export function useCurrentCourseSession() { return result; } -export function useCourseSessionDetailQuery(courSessionId?: string | number) { +export function useCourseSessionDetailQuery(courSessionId?: string) { if (!courSessionId) { courSessionId = useCurrentCourseSession().value.id; } const queryResult = useQuery({ query: COURSE_SESSION_DETAIL_QUERY, variables: { - courseSessionId: courSessionId.toString(), + courseSessionId: courSessionId, }, }); diff --git a/client/src/pages/AppointmentsPage.vue b/client/src/pages/AppointmentsPage.vue index a5496775..1d26beb5 100644 --- a/client/src/pages/AppointmentsPage.vue +++ b/client/src/pages/AppointmentsPage.vue @@ -9,12 +9,12 @@ import DueDatesList from "@/components/dueDates/DueDatesList.vue"; const { t } = useTranslation(); -const UNFILTERED = Number.MAX_SAFE_INTEGER; +const UNFILTERED = Number.MAX_SAFE_INTEGER.toString(); const courseSessionsStore = useCourseSessionsStore(); const learningPathStore = useLearningPathStore(); type Item = { - id: number; + id: string; name: string; }; @@ -108,7 +108,7 @@ const isMatchingCircle = (dueDate: DueDate) => dueDate.circle?.id === selectedCircle.value.id; const isMatchingCourse = (dueDate: DueDate) => - courseSessions.value.map((cs) => cs.id).includes(dueDate.course_session as number); + courseSessions.value.map((cs) => cs.id).includes(dueDate.course_session); const numAppointmentsToShow = ref(7); const canLoadMore = computed(() => { diff --git a/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue b/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue index b201d057..fd42b7c8 100644 --- a/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue +++ b/client/src/pages/cockpit/assignmentEvaluationPage/AssignmentEvaluationPage.vue @@ -1,5 +1,5 @@