Work on media library frontend

This commit is contained in:
Daniel Egger 2022-10-04 10:48:22 +02:00
parent cbdbdba6b8
commit 63a5039134
22 changed files with 33 additions and 29 deletions

View File

@ -6,8 +6,8 @@ import { useUserStore } from "@/stores/user";
import { onMounted } from "vue";
import LearningPathDiagram from "@/components/learningPath/LearningPathDiagram.vue";
import LearningPathViewVertical from "@/pages/LearningPathViewVertical.vue";
import type { LearningPath } from "@/services/learningPath";
import LearningPathViewVertical from "@/views/LearningPathViewVertical.vue";
log.debug("LearningPathView created");

View File

@ -1,8 +1,8 @@
<script setup lang="ts">
import LinkCard from "@/components/mediaLibrary/LinkCard.vue";
import MediaLink from "@/components/mediaLibrary/MediaLink.vue";
import HandlungsfeldLayout from "@/pages/mediaLibrary/MLCategoryLayout.vue";
import { useMediaLibraryStore } from "@/stores/mediaLibrary";
import HandlungsfeldLayout from "@/views/HandlungsfeldLayout.vue";
import * as log from "loglevel";
import { computed } from "vue";
@ -281,7 +281,7 @@ const hasMoreItemsForType = (itemType: string, items: object[]) => {
content_collection.value.contents
)
"
to="/media/handlungsfeldlist"
:to="`${mediaCategory.frontend_url}/media`"
class="flex items-center"
>
<span>Alle anschauen</span>

View File

@ -28,7 +28,7 @@ watch(dropdownSelected, (newValue) =>
v-if="mediaStore.mediaLibraryPage"
title="Handlungsfelder"
call2-action="Anschauen"
:link="`/media/${mediaStore.mediaLibraryPage.slug}/handlungsfelder`"
:link="`${mediaStore.mediaLibraryPage.frontend_url}/category`"
description="Finde alle Ressourcen der Handlungsfelder wie Lernmedien, Links und andere nützliche Informationen."
icon="handlungsfelder-overview"
class="mb-6"

View File

@ -1,6 +1,6 @@
<script setup lang="ts">
import MediaLink from "@/components/mediaLibrary/MediaLink.vue";
import HandlungsfeldLayout from "@/views/HandlungsfeldLayout.vue";
import HandlungsfeldLayout from "@/pages/mediaLibrary/MLCategoryLayout.vue";
const data = {
title: "Fahrzeug: Lernmedien",

View File

@ -1,7 +1,7 @@
import { redirectToLoginIfRequired, updateLoggedIn } from "@/router/guards";
import { useAppStore } from "@/stores/app";
import CockpitView from "@/views/CockpitView.vue";
import LoginView from "@/views/LoginView.vue";
import CockpitView from "@/pages/CockpitView.vue";
import LoginView from "@/pages/LoginView.vue";
import { createRouter, createWebHistory } from "vue-router";
const router = createRouter({
@ -22,71 +22,71 @@ const router = createRouter({
},
{
path: "/shop",
component: () => import("@/views/ShopView.vue"),
component: () => import("@/pages/ShopView.vue"),
},
{
path: "/media/:mediaLibraryPageSlug",
props: true,
component: () => import("@/views/media_library/MediaLibraryParentView.vue"),
component: () => import("@/pages/mediaLibrary/MLParentPage.vue"),
children: [
{
path: "",
component: () => import("@/views/media_library/MediaLibraryIndexView.vue"),
component: () => import("@/pages/mediaLibrary/MLIndexPage.vue"),
},
{
path: "handlungsfelder/:mediaCategorySlug",
path: "category/:mediaCategorySlug/media",
component: () => import("@/pages/mediaLibrary/MLMediaList.vue"),
},
{
path: "category/:mediaCategorySlug",
props: true,
component: () => import("@/views/media_library/MediaCategoryDetailView.vue"),
component: () => import("@/pages/mediaLibrary/MLCategoryDetailPage.vue"),
},
{
path: "handlungsfelder",
path: "category",
component: () =>
import("@/views/media_library/MediaLibraryCategoryOverview.vue"),
},
{
path: "handlungsfeldlist",
component: () => import("@/views/MediaList.vue"),
import("@/pages/mediaLibrary/MLCategoryIndexPage.vue"),
},
],
},
{
path: "/messages",
component: () => import("@/views/MessagesView.vue"),
component: () => import("@/pages/MessagesView.vue"),
},
{
path: "/profile",
component: () => import("@/views/ProfileView.vue"),
component: () => import("@/pages/ProfileView.vue"),
},
{
path: "/learn/:learningPathSlug",
component: () => import("../views/LearningPathView.vue"),
component: () => import("../pages/LearningPathView.vue"),
props: true,
},
{
path: "/learn/:learningPathSlug/:circleSlug",
component: () => import("../views/CircleView.vue"),
component: () => import("../pages/CircleView.vue"),
props: true,
},
{
path: "/learn/:learningPathSlug/:circleSlug/evaluate/:learningUnitSlug",
component: () => import("../views/LearningUnitSelfEvaluationView.vue"),
component: () => import("../pages/LearningUnitSelfEvaluationView.vue"),
props: true,
},
{
path: "/learn/:learningPathSlug/:circleSlug/:contentSlug",
component: () => import("../views/LearningContentView.vue"),
component: () => import("../pages/LearningContentView.vue"),
props: true,
},
{
path: "/styleguide",
component: () => import("../views/StyleGuideView.vue"),
component: () => import("../pages/StyleGuideView.vue"),
meta: {
public: true,
},
},
{
path: "/:pathMatch(.*)*",
component: () => import("../views/404View.vue"),
component: () => import("../pages/404Page.vue"),
},
],
});

View File

@ -1,5 +1,4 @@
import structlog
from django.views.decorators.cache import cache_page
from rest_framework.decorators import api_view
from rest_framework.response import Response
from wagtail.models import Page
@ -12,7 +11,8 @@ logger = structlog.get_logger(__name__)
@api_view(["GET"])
@cache_page(60 * 60 * 8, cache="api_page_cache")
# TODO readd
# @cache_page(60 * 60 * 8, cache="api_page_cache")
def page_api_view(request, slug):
try:
page = Page.objects.get(slug=slug, locale__language_code="de-CH")

View File

@ -56,6 +56,10 @@ welche Aspekte du bei einer Offerte beachten musst und wie du dem Kunden die Lö
create_learn_media_block(LearnMediaBlockFactory()),
create_learn_media_block(LearnMediaBlockFactory()),
create_learn_media_block(LearnMediaBlockFactory()),
create_learn_media_block(LearnMediaBlockFactory()),
create_learn_media_block(LearnMediaBlockFactory()),
create_learn_media_block(LearnMediaBlockFactory()),
create_learn_media_block(LearnMediaBlockFactory()),
],
),
create_media_collection(

View File

@ -86,7 +86,7 @@ class MediaCategoryPage(Page):
def get_frontend_url(self):
short_slug = self.slug.replace(f"{self.get_parent().slug}-cat-", "")
return f"{self.get_parent().specific.get_frontend_url()}/handlungsfelder/{short_slug}"
return f"{self.get_parent().specific.get_frontend_url()}/category/{short_slug}"
@classmethod
def get_serializer_class(cls):