diff --git a/client/src/components/MainNavigationBar.vue b/client/src/components/MainNavigationBar.vue index 199f64fd..d313395b 100644 --- a/client/src/components/MainNavigationBar.vue +++ b/client/src/components/MainNavigationBar.vue @@ -39,6 +39,11 @@ function inCourse() { return route.path.startsWith("/course/"); } +function inCockpit() { + const regex = new RegExp("/course/[^/]+/cockpit"); + return regex.test(route.path); +} + function inLearningPath() { const regex = new RegExp("/course/[^/]+/learn"); return regex.test(route.path); @@ -154,6 +159,15 @@ const profileDropdownData: DropdownListItem[] = [ :class="state.showMenu ? 'flex' : 'hidden'" class="flex-auto mt-8 lg:flex lg:space-y-0 lg:flex-row lg:items-center lg:space-x-10 lg:mt-0" > + + + + + + + + + { - return ( - routePath.startsWith(cs.learning_path_url) || - routePath.startsWith(cs.competence_url) - ); + return routePath.startsWith(cs.course_url); }); }, coursesFromCourseSessions: (state) => { diff --git a/client/src/types.ts b/client/src/types.ts index 67eb034e..2331a18c 100644 --- a/client/src/types.ts +++ b/client/src/types.ts @@ -322,6 +322,7 @@ export interface CourseSession { end_date: string; learning_path_url: string; competence_url: string; + course_url: string; media_library_url: string; additional_json_data: unknown; experts: CircleExpert[]; diff --git a/server/vbv_lernwelt/course/models.py b/server/vbv_lernwelt/course/models.py index 4da40431..956b1a41 100644 --- a/server/vbv_lernwelt/course/models.py +++ b/server/vbv_lernwelt/course/models.py @@ -21,6 +21,9 @@ class Course(models.Model): class Meta: verbose_name = _("Lehrgang") + def get_course_url(self): + return f'/course/{self.slug}' + def get_learning_path_url(self): from vbv_lernwelt.learnpath.models import LearningPath diff --git a/server/vbv_lernwelt/course/serializers.py b/server/vbv_lernwelt/course/serializers.py index c515796e..df9b5246 100644 --- a/server/vbv_lernwelt/course/serializers.py +++ b/server/vbv_lernwelt/course/serializers.py @@ -44,15 +44,19 @@ class CourseCompletionSerializer(serializers.ModelSerializer): class CourseSessionSerializer(serializers.ModelSerializer): + course = serializers.SerializerMethodField() + course_url = serializers.SerializerMethodField() learning_path_url = serializers.SerializerMethodField() competence_url = serializers.SerializerMethodField() media_library_url = serializers.SerializerMethodField() - course = serializers.SerializerMethodField() experts = serializers.SerializerMethodField() def get_course(self, obj): return CourseSerializer(obj.course).data + def get_course_url(self, obj): + return obj.course.get_course_url() + def get_learning_path_url(self, obj): return obj.course.get_learning_path_url() @@ -96,5 +100,6 @@ class CourseSessionSerializer(serializers.ModelSerializer): "learning_path_url", "competence_url", "media_library_url", + "course_url", "experts", ]