Use Due Dates from all course Sessions for Dashboard

This commit is contained in:
Lorenz Padberg 2023-06-19 14:52:54 +02:00
parent 89ff4af3c8
commit 9bb3c93cfb
3 changed files with 23 additions and 9 deletions

View File

@ -2,7 +2,7 @@
<div class="bg-white p-4"> <div class="bg-white p-4">
<ul v-if="true"> <ul v-if="true">
<li <li
v-for="dueDate in dueDates" v-for="dueDate in props.dueDates"
:key="dueDate.id" :key="dueDate.id"
class="flex flex-row border-b py-4" class="flex flex-row border-b py-4"
> >
@ -18,9 +18,9 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { dueDatesTestData } from "@/components/dueDates/DueDatesTestData";
import { formatDate } from "@/components/dueDates/DueDatesUtils.ts"; import { formatDate } from "@/components/dueDates/DueDatesUtils.ts";
import { useCurrentCourseSession } from "@/composables"; import { useCurrentCourseSession } from "@/composables";
import type { DueDate } from "@/types";
import { defineProps } from "vue"; import { defineProps } from "vue";
const props = defineProps<{ const props = defineProps<{
@ -28,16 +28,13 @@ const props = defineProps<{
default: 10; default: 10;
type: number; type: number;
}; };
dueDates: DueDate[];
}>(); }>();
const courseSession = useCurrentCourseSession(); const courseSession = useCurrentCourseSession();
let dueDates = []; //courseSession.value.duedates.slice(0, props.maxCount); const dueDates = []; //courseSession.value.duedates.slice(0, props.maxCount);
// //
// if (dueDates.length === 0) { // if (dueDates.length === 0) {
// dueDates = dueDatesTestData; // dueDates = dueDatesTestData;
// } // }
dueDates = dueDatesTestData();
console.log("dueDates: ", dueDates);
console.log("maxCount: ", props.maxCount);
</script> </script>

View File

@ -16,7 +16,13 @@ onMounted(async () => {
log.debug("DashboardPage mounted"); log.debug("DashboardPage mounted");
}); });
const allDueDates = courseSessionsStore.allDueDates();
const getNextStepLink = (courseSession: CourseSession) => { const getNextStepLink = (courseSession: CourseSession) => {
console.log("courseSession: ", courseSession);
courseSessionsStore.allCourseSessions.forEach((courseSession) => {
console.log("duedates: ", courseSession.duedates);
});
return computed(() => { return computed(() => {
if (courseSessionsStore.hasCockpit(courseSession)) { if (courseSessionsStore.hasCockpit(courseSession)) {
return courseSession.cockpit_url; return courseSession.cockpit_url;
@ -71,7 +77,7 @@ const getNextStepLink = (courseSession: CourseSession) => {
</div> </div>
<div> <div>
<h3 class="mb-6">Termine</h3> <h3 class="mb-6">Termine</h3>
<DueDatesLongList></DueDatesLongList> <DueDatesLongList :due-dates="allDueDates"></DueDatesLongList>
</div> </div>
</div> </div>
</main> </main>

View File

@ -6,6 +6,7 @@ import type {
CourseSessionAssignmentDetails, CourseSessionAssignmentDetails,
CourseSessionAttendanceCourse, CourseSessionAttendanceCourse,
CourseSessionUser, CourseSessionUser,
DueDate,
ExpertSessionUser, ExpertSessionUser,
} from "@/types"; } from "@/types";
import eventBus from "@/utils/eventBus"; import eventBus from "@/utils/eventBus";
@ -42,7 +43,6 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
cs.duedates.forEach((dueDate) => { cs.duedates.forEach((dueDate) => {
dueDate.start = dayjs(dueDate.start); dueDate.start = dayjs(dueDate.start);
dueDate.end = dayjs(dueDate.end); dueDate.end = dayjs(dueDate.end);
console.log(dueDate);
}); });
}) })
); );
@ -195,6 +195,16 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
currentCourseSession.value?.documents.push(document); currentCourseSession.value?.documents.push(document);
} }
function allDueDates() {
const allDueDatesReturn: DueDate[] = [];
allCourseSessions.value?.forEach((cs) => {
allDueDatesReturn.push(...cs.duedates);
});
allDueDatesReturn.sort((a, b) => dayjs(a.end).diff(dayjs(b.end)));
return allDueDatesReturn;
}
async function startUpload() { async function startUpload() {
log.debug("loadCourseSessionsData called"); log.debug("loadCourseSessionsData called");
allCourseSessions.value = await itPost(`/api/core/file/start`, { allCourseSessions.value = await itPost(`/api/core/file/start`, {
@ -250,6 +260,7 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
removeDocument, removeDocument,
findAttendanceCourse, findAttendanceCourse,
findAssignmentDetails, findAssignmentDetails,
allDueDates,
// use `useCurrentCourseSession` whenever possible // use `useCurrentCourseSession` whenever possible
currentCourseSession, currentCourseSession,