Refactor courseSessionStore names

This commit is contained in:
Daniel Egger 2023-04-04 10:59:26 +02:00
parent 1d88117d99
commit a7cc07cc80
10 changed files with 46 additions and 51 deletions

View File

@ -196,7 +196,7 @@ const nextStep = () => {
const sendFeedback = () => {
log.info("sending feedback");
const courseSession = courseSessionsStore.courseSessionForRoute;
const courseSession = courseSessionsStore.currentCourseSession;
if (!courseSession || !courseSession.id) {
log.error("no course session set");
return;

View File

@ -69,7 +69,7 @@ function popoverClick(event: Event) {
}
const selectedCourseSessionTitle = computed(() => {
return courseSessionsStore.courseSessionForRoute?.title;
return courseSessionsStore.currentCourseSession?.title;
});
onMounted(() => {
@ -83,8 +83,8 @@ onMounted(() => {
<MobileMenu
v-if="userStore.loggedIn"
:show="state.showMobileNavigationMenu"
:course-session="courseSessionsStore.courseSessionForRoute"
:media-url="courseSessionsStore.courseSessionForRoute?.media_library_url"
:course-session="courseSessionsStore.currentCourseSession"
:media-url="courseSessionsStore.currentCourseSession?.media_library_url"
:user="userStore"
@closemodal="state.showMobileNavigationMenu = false"
@logout="userStore.handleLogout()"
@ -97,7 +97,7 @@ onMounted(() => {
@closemodal="state.showMobileProfileMenu = false"
>
<AccountMenuContent
:course-sessions="courseSessionsStore.courseSessionsForRoute"
:course-sessions="courseSessionsStore.currentCourseSessions"
:user="userStore"
@logout="logout"
/>
@ -139,10 +139,10 @@ onMounted(() => {
<router-link
v-if="
inCourse() &&
courseSessionsStore.courseSessionForRoute &&
courseSessionsStore.currentCourseSession &&
courseSessionsStore.hasCockpit
"
:to="`${courseSessionsStore.courseSessionForRoute.course_url}/cockpit`"
:to="`${courseSessionsStore.currentCourseSession.course_url}/cockpit`"
class="nav-item"
:class="{ 'nav-item--active': inCockpit() }"
>
@ -150,8 +150,8 @@ onMounted(() => {
</router-link>
<router-link
v-if="inCourse() && courseSessionsStore.courseSessionForRoute"
:to="courseSessionsStore.courseSessionForRoute.learning_path_url"
v-if="inCourse() && courseSessionsStore.currentCourseSession"
:to="courseSessionsStore.currentCourseSession.learning_path_url"
class="nav-item"
:class="{ 'nav-item--active': inLearningPath() }"
>
@ -159,8 +159,8 @@ onMounted(() => {
</router-link>
<router-link
v-if="inCourse() && courseSessionsStore.courseSessionForRoute"
:to="courseSessionsStore.courseSessionForRoute.competence_url"
v-if="inCourse() && courseSessionsStore.currentCourseSession"
:to="courseSessionsStore.currentCourseSession.competence_url"
class="nav-item"
:class="{ 'nav-item--active': inCompetenceProfile() }"
>
@ -218,7 +218,7 @@ onMounted(() => {
>
<div class="p-4">
<AccountMenuContent
:course-sessions="courseSessionsStore.courseSessionsForRoute"
:course-sessions="courseSessionsStore.currentCourseSessions"
:user="userStore"
@logout="logout"
@select-course-session="selectCourseSession"

View File

@ -28,12 +28,15 @@ onMounted(async () => {
<h1 data-cy="welcome-message">
{{ $t("dashboard.welcome", { name: userStore.first_name }) }}
</h1>
<div v-if="courseSessionsStore.courseSessions.length > 0" class="mb-14">
<div
v-if="courseSessionsStore.uniqueCourseSessionsByCourse.length > 0"
class="mb-14"
>
<h2 class="mb-3 mt-12">Kurse</h2>
<div class="grid auto-rows-fr grid-cols-1 gap-4 md:grid-cols-2">
<div
v-for="courseSession in courseSessionsStore.userCourses"
v-for="courseSession in courseSessionsStore.uniqueCourseSessionsByCourse"
:key="courseSession.id"
>
<div class="bg-white p-6 md:h-full">

View File

@ -132,8 +132,8 @@ function setActiveClasses(translationKey: string) {
learningPathStore.learningPathForUser(props.courseSlug, userStore.id)
?.circles || []
"
:course-id="courseSessionStore.courseSessionForRoute?.course.id || 0"
:url="courseSessionStore.courseSessionForRoute?.course_url || ''"
:course-id="courseSessionStore.currentCourseSession?.course.id || 0"
:url="courseSessionStore.currentCourseSession?.course_url || ''"
></FeedbackSummary>
<div>
<!-- progress -->

View File

@ -149,7 +149,7 @@ const feedbackData = reactive<FeedbackData>({ amount: 0, questions: {} });
onMounted(async () => {
log.debug("FeedbackPage mounted");
const data = await itGet(
`/api/core/feedback/${courseSessionStore.courseSessionForRoute?.course.id}/${props.circleId}`
`/api/core/feedback/${courseSessionStore.currentCourseSession?.course.id}/${props.circleId}`
);
Object.assign(feedbackData, data);
});

View File

@ -112,12 +112,12 @@ async function uploadDocument(data: DocumentUploadData) {
isUploading.value = true;
showUploadErrorMessage.value = false;
try {
if (!courseSessionsStore.courseSessionForRoute) {
if (!courseSessionsStore.currentCourseSession) {
throw new Error("No course session found");
}
const newDocument = await uploadCircleDocument(
data,
courseSessionsStore.courseSessionForRoute.id
courseSessionsStore.currentCourseSession.id
);
const courseSessionStore = useCourseSessionsStore();
courseSessionStore.addDocument(newDocument);

View File

@ -93,7 +93,7 @@ function handleBack() {
<div class="mt-6 lg:mt-12">
{{ $t("selfEvaluation.progressText") }}
<router-link
:to="courseSession.courseSessionForRoute?.competence_url || '/'"
:to="courseSession.currentCourseSession?.competence_url || '/'"
class="text-primary-500 underline"
>
{{ $t("selfEvaluation.progressLink") }}

View File

@ -167,9 +167,7 @@ export const useCompetenceStore = defineStore({
const completionStore = useCompletionStore();
const courseSessionsStore = useCourseSessionsStore();
const courseSession = courseSessionsStore.courseSessionForCourse(
competenceProfilePage.course.slug
);
const courseSession = courseSessionsStore.currentCourseSession;
if (courseSession) {
const completionData = await completionStore.loadCompletionData(
courseSession.id,

View File

@ -31,13 +31,9 @@ export const useCompletionStore = defineStore({
) {
if (!courseSessionId) {
const courseSessionsStore = useCourseSessionsStore();
const courseSlug = courseSessionsStore.currentCourseSlug;
if (courseSlug) {
const courseSessionsStore = useCourseSessionsStore();
const courseSession = courseSessionsStore.courseSessionForCourse(courseSlug);
if (courseSession) {
courseSessionId = courseSession.id;
}
const courseSession = courseSessionsStore.currentCourseSession;
if (courseSession) {
courseSessionId = courseSession.id;
}
}

View File

@ -76,7 +76,7 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
const currentCourseSlug = ref("");
// these will become getters
const userCourses = computed(() =>
const uniqueCourseSessionsByCourse = computed(() =>
// TODO: refactor after implementing of Klassenkonzept
// @ts-ignore
uniqBy(courseSessions.value, "course.id")
@ -125,19 +125,19 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
});
}
const courseSessionForRoute = computed(() => {
const currentCourseSession = computed(() => {
return courseSessionForCourse(currentCourseSlug.value);
});
const courseSessionsForRoute = computed(() => {
const currentCourseSessions = computed(() => {
return courseSessionsForCourse(currentCourseSlug.value);
});
const hasCockpit = computed(() => {
if (courseSessionForRoute.value) {
if (currentCourseSession.value) {
const userStore = useUserStore();
return (
userStore.course_session_experts.includes(courseSessionForRoute.value.id) ||
userStore.course_session_experts.includes(currentCourseSession.value.id) ||
userStore.is_superuser
);
}
@ -149,8 +149,8 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
const circleStore = useCircleStore();
const circleTranslationKey = circleStore.circle?.translation_key;
if (courseSessionForRoute.value && circleTranslationKey) {
return courseSessionForRoute.value.users.filter((u) => {
if (currentCourseSession.value && circleTranslationKey) {
return currentCourseSession.value.users.filter((u) => {
if (u.role === "EXPERT") {
return (u as ExpertSessionUser).circles
.map((c) => c.translation_key)
@ -175,11 +175,11 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
return circleStore.circle?.learningSequences
.map((ls) => ({ id: ls.id, title: ls.title, documents: [] }))
.map((ls: { id: number; title: string; documents: CircleDocument[] }) => {
if (courseSessionForRoute.value === undefined) {
if (currentCourseSession.value === undefined) {
return ls;
}
for (const document of courseSessionForRoute.value.documents) {
for (const document of currentCourseSession.value.documents) {
if (document.learning_sequence === ls.id) {
ls.documents.push(document);
}
@ -190,7 +190,7 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
});
function addDocument(document: CircleDocument) {
courseSessionForRoute.value?.documents.push(document);
currentCourseSession.value?.documents.push(document);
}
async function startUpload() {
@ -204,20 +204,20 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
async function removeDocument(documentId: number) {
await deleteCircleDocument(documentId);
if (courseSessionForRoute.value === undefined) {
if (currentCourseSession.value === undefined) {
return;
}
courseSessionForRoute.value.documents =
courseSessionForRoute.value?.documents.filter((d) => d.id !== documentId);
currentCourseSession.value.documents = currentCourseSession.value?.documents.filter(
(d) => d.id !== documentId
);
}
function findAttendanceDay(
contentId: number
): CourseSessionAttendanceDay | undefined {
const currentCourseSession = courseSessionForRoute.value;
if (currentCourseSession) {
return currentCourseSession.attendance_days.find(
if (currentCourseSession.value) {
return currentCourseSession.value.attendance_days.find(
(attendanceDay) => attendanceDay.learningContentId === contentId
);
}
@ -225,12 +225,10 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
return {
currentCourseSlug,
courseSessions,
userCourses,
courseSessionForRoute,
uniqueCourseSessionsByCourse,
currentCourseSession,
currentCourseSessions,
courseSessionForCourse,
courseSessionsForRoute,
courseSessionsForCourse,
switchCourseSession,
hasCockpit,
canUploadCircleDocuments,