From df6f331811813bc6a51db1993074a48953f32887 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Wed, 5 Oct 2022 14:38:56 +0200 Subject: [PATCH] Anpassung "Verankerung im Lernpfad" --- .../learningPath/LearningSequence.vue | 1 + client/src/pages/learningPath/CirclePage.vue | 24 +- .../mediaLibrary/MLCategoryDetailPage.vue | 3 + .../0003_alter_learningcontent_contents.py | 104 ++++++- .../media_library/content_blocks.py | 3 +- .../create_default_media_library.py | 50 +++- .../0002_alter_mediacategorypage_body.py | 262 ++++++++++++++++++ .../tests/media_library_factories.py | 13 +- 8 files changed, 438 insertions(+), 22 deletions(-) create mode 100644 server/vbv_lernwelt/media_library/migrations/0002_alter_mediacategorypage_body.py diff --git a/client/src/components/learningPath/LearningSequence.vue b/client/src/components/learningPath/LearningSequence.vue index f105eb12..f319a96e 100644 --- a/client/src/components/learningPath/LearningSequence.vue +++ b/client/src/components/learningPath/LearningSequence.vue @@ -99,6 +99,7 @@ const learningSequenceBorderClass = computed(() => { >
diff --git a/client/src/pages/learningPath/CirclePage.vue b/client/src/pages/learningPath/CirclePage.vue index 3f9b3661..123d788a 100644 --- a/client/src/pages/learningPath/CirclePage.vue +++ b/client/src/pages/learningPath/CirclePage.vue @@ -40,13 +40,25 @@ onMounted(async () => { try { await circleStore.loadCircle(props.learningPathSlug, props.circleSlug); - if (route.hash.startsWith("#ls-")) { - const hashLearningSequence = circleStore.circle?.learningSequences.find((ls) => { - return ls.slug.endsWith(route.hash.replace("#", "")); - }); - if (hashLearningSequence) { + if (route.hash.startsWith("#ls-") || route.hash.startsWith("#lu-")) { + const slugEnd = route.hash.replace("#", ""); + let wagtailPage = null; + + if (slugEnd.startsWith("ls-")) { + wagtailPage = circleStore.circle?.learningSequences.find((ls) => { + return ls.slug.endsWith(slugEnd); + }); + } else if (slugEnd.startsWith("lu-")) { + const learningUnits = circleStore.circle?.learningSequences.flatMap( + (ls) => ls.learningUnits + ); + wagtailPage = learningUnits.find((lu) => { + return lu.slug.endsWith(slugEnd); + }); + } + if (wagtailPage) { document - .getElementById(hashLearningSequence.slug) + .getElementById(wagtailPage.slug) ?.scrollIntoView({ behavior: "smooth" }); } } diff --git a/client/src/pages/mediaLibrary/MLCategoryDetailPage.vue b/client/src/pages/mediaLibrary/MLCategoryDetailPage.vue index 126b5a0f..4686631e 100644 --- a/client/src/pages/mediaLibrary/MLCategoryDetailPage.vue +++ b/client/src/pages/mediaLibrary/MLCategoryDetailPage.vue @@ -89,6 +89,9 @@ const hasMoreItemsForType = (itemType: string, items: object[]) => { >

{{ content_collection.value.title }}

+

+ {{ content_collection.value.description }} +