Some refactoring in course sessions
This commit is contained in:
parent
4996eb565a
commit
1d04fa20f5
|
|
@ -2,6 +2,7 @@ import DashboardPage from "@/pages/DashboardPage.vue";
|
||||||
import LoginPage from "@/pages/LoginPage.vue";
|
import LoginPage from "@/pages/LoginPage.vue";
|
||||||
import { redirectToLoginIfRequired, updateLoggedIn } from "@/router/guards";
|
import { redirectToLoginIfRequired, updateLoggedIn } from "@/router/guards";
|
||||||
import { useAppStore } from "@/stores/app";
|
import { useAppStore } from "@/stores/app";
|
||||||
|
import { useCourseSessionsStore } from "@/stores/courseSessions";
|
||||||
import { createRouter, createWebHistory } from "vue-router";
|
import { createRouter, createWebHistory } from "vue-router";
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
|
|
@ -165,11 +166,11 @@ router.beforeEach(updateLoggedIn);
|
||||||
router.beforeEach(redirectToLoginIfRequired);
|
router.beforeEach(redirectToLoginIfRequired);
|
||||||
|
|
||||||
router.beforeEach((to) => {
|
router.beforeEach((to) => {
|
||||||
const appStore = useAppStore();
|
const courseSessionStore = useCourseSessionsStore();
|
||||||
if (to.params.courseSlug) {
|
if (to.params.courseSlug) {
|
||||||
appStore.currentCourseSlug = to.params.courseSlug as string;
|
courseSessionStore.currentCourseSlug = to.params.courseSlug as string;
|
||||||
} else {
|
} else {
|
||||||
appStore.currentCourseSlug = "";
|
courseSessionStore.currentCourseSlug = "";
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ export const useAppStore = defineStore({
|
||||||
showMainNavigationBar: showMainNavigationBarInitialState(),
|
showMainNavigationBar: showMainNavigationBarInitialState(),
|
||||||
userLoaded: false,
|
userLoaded: false,
|
||||||
routingFinished: false,
|
routingFinished: false,
|
||||||
currentCourseSlug: "",
|
|
||||||
} as AppState),
|
} as AppState),
|
||||||
getters: {},
|
getters: {},
|
||||||
actions: {},
|
actions: {},
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { bustItGetCache, itGetCached, itPost } from "@/fetchHelpers";
|
import { bustItGetCache, itGetCached, itPost } from "@/fetchHelpers";
|
||||||
import { useAppStore } from "@/stores/app";
|
|
||||||
import { useCourseSessionsStore } from "@/stores/courseSessions";
|
import { useCourseSessionsStore } from "@/stores/courseSessions";
|
||||||
import { useUserStore } from "@/stores/user";
|
import { useUserStore } from "@/stores/user";
|
||||||
import type { BaseCourseWagtailPage, CourseCompletion } from "@/types";
|
import type { BaseCourseWagtailPage, CourseCompletion } from "@/types";
|
||||||
|
|
@ -31,8 +30,8 @@ export const useCompletionStore = defineStore({
|
||||||
courseSessionId: number | undefined = undefined
|
courseSessionId: number | undefined = undefined
|
||||||
) {
|
) {
|
||||||
if (!courseSessionId) {
|
if (!courseSessionId) {
|
||||||
const appStore = useAppStore();
|
const courseSessionsStore = useCourseSessionsStore();
|
||||||
const courseSlug = appStore.currentCourseSlug;
|
const courseSlug = courseSessionsStore.currentCourseSlug;
|
||||||
if (courseSlug) {
|
if (courseSlug) {
|
||||||
const courseSessionsStore = useCourseSessionsStore();
|
const courseSessionsStore = useCourseSessionsStore();
|
||||||
const courseSession = courseSessionsStore.courseSessionForCourse(courseSlug);
|
const courseSession = courseSessionsStore.courseSessionForCourse(courseSlug);
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ import uniqBy from "lodash/uniqBy";
|
||||||
import log from "loglevel";
|
import log from "loglevel";
|
||||||
import { defineStore } from "pinia";
|
import { defineStore } from "pinia";
|
||||||
import { computed, ref } from "vue";
|
import { computed, ref } from "vue";
|
||||||
import { useRoute } from "vue-router";
|
|
||||||
import { useCircleStore } from "./circle";
|
import { useCircleStore } from "./circle";
|
||||||
import { useUserStore } from "./user";
|
import { useUserStore } from "./user";
|
||||||
|
|
||||||
|
|
@ -73,6 +72,8 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
|
||||||
new Map<string, number>()
|
new Map<string, number>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const currentCourseSlug = ref("");
|
||||||
|
|
||||||
// these will become getters
|
// these will become getters
|
||||||
const userCourses = computed(() =>
|
const userCourses = computed(() =>
|
||||||
// TODO: refactor after implementing of Klassenkonzept
|
// TODO: refactor after implementing of Klassenkonzept
|
||||||
|
|
@ -123,19 +124,12 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const courseSlugForRoute = computed(() => {
|
|
||||||
const route = useRoute();
|
|
||||||
return (route.params.courseSlug as string) ?? undefined;
|
|
||||||
});
|
|
||||||
|
|
||||||
const courseSessionForRoute = computed(() => {
|
const courseSessionForRoute = computed(() => {
|
||||||
const courseSlug = courseSlugForRoute.value;
|
return courseSessionForCourse(currentCourseSlug.value);
|
||||||
return courseSessionForCourse(courseSlug);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const courseSessionsForRoute = computed(() => {
|
const courseSessionsForRoute = computed(() => {
|
||||||
const courseSlug = courseSlugForRoute.value;
|
return courseSessionsForCourse(currentCourseSlug.value);
|
||||||
return courseSessionsForCourse(courseSlug);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const hasCockpit = computed(() => {
|
const hasCockpit = computed(() => {
|
||||||
|
|
@ -218,6 +212,7 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
currentCourseSlug,
|
||||||
courseSessions,
|
courseSessions,
|
||||||
userCourses,
|
userCourses,
|
||||||
courseSessionForRoute,
|
courseSessionForRoute,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue