Rework Media Library

This commit is contained in:
Daniel Egger 2023-05-17 14:51:51 +02:00
parent e1b0add09b
commit decba980f5
6 changed files with 61 additions and 29 deletions

View File

@ -15,14 +15,14 @@ import PlaceholderBlock from "./blocks/PlaceholderBlock.vue";
import RichTextBlock from "./blocks/RichTextBlock.vue"; import RichTextBlock from "./blocks/RichTextBlock.vue";
import VideoBlock from "./blocks/VideoBlock.vue"; import VideoBlock from "./blocks/VideoBlock.vue";
log.debug("LearningContent.vue setup");
const circleStore = useCircleStore(); const circleStore = useCircleStore();
const props = defineProps<{ const props = defineProps<{
learningContent: LearningContent; learningContent: LearningContent;
}>(); }>();
log.debug("LearningContentParent setup", props.learningContent);
// can't use the type as component name, as some are reserved HTML components, e.g. video // can't use the type as component name, as some are reserved HTML components, e.g. video
const COMPONENTS: Record<LearningContentType, Component> = { const COMPONENTS: Record<LearningContentType, Component> = {
"learnpath.LearningContentAssignment": AssignmentBlock, "learnpath.LearningContentAssignment": AssignmentBlock,

View File

@ -1,13 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
import LearningContentSimpleLayout from "@/pages/learningPath/learningContentPage/layouts/LearningContentSimpleLayout.vue"; import LearningContentSimpleLayout from "@/pages/learningPath/learningContentPage/layouts/LearningContentSimpleLayout.vue";
import type { LearningContentMediaLibrary } from "@/types"; import type { LearningContentMediaLibrary } from "@/types";
import { useRoute } from "vue-router"; import log from "loglevel";
const route = useRoute();
const props = defineProps<{ const props = defineProps<{
content: LearningContentMediaLibrary; content: LearningContentMediaLibrary;
}>(); }>();
log.debug("LearningContentMediaLibraryBlock.vue created");
</script> </script>
<template> <template>
@ -16,13 +16,15 @@ const props = defineProps<{
:learning-content-type="props.content.content_type" :learning-content-type="props.content.content_type"
> >
<div class="container-medium"> <div class="container-medium">
<p class="text-large my-4 lg:my-8">{{ props.content.description }}</p> <p class="text-large my-4 lg:my-8" v-html="props.content.description"></p>
<router-link <a
:to="`${props.content.content_url}?back=${route.path}`" :href="`${props.content.content_url}`"
class="button btn-primary" target="_blank"
class="btn-primary inline-flex items-center"
> >
Mediathek öffnen Handlungsfeld anzeigen
</router-link> <it-icon-external-link class="ml-2 h-5 w-5"></it-icon-external-link>
</a>
</div> </div>
</LearningContentSimpleLayout> </LearningContentSimpleLayout>
</template> </template>

View File

@ -217,9 +217,13 @@ damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
), ),
) )
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Handlungsfeld «{title}»",
parent=circle, parent=circle,
content_url=f"/media/überbetriebliche-kurse-media/category/{slugify(title)}", description=RichText(
f"<p>In der Mediathek unter dem Handlungsfeld «{title}» findest du alle relevanten Ressourcen für deine Fachkompetenzen.</p>"
f"<p>Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.</p>"
),
content_url=f"/course/überbetriebliche-kurse/media/category/{slugify(title)}",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Vorbereitungsauftrag", title="Vorbereitungsauftrag",

View File

@ -65,9 +65,9 @@ def command(course):
if COURSE_UK in course: if COURSE_UK in course:
create_course_uk_de() create_course_uk_de()
create_course_uk_de_completion_data( # create_course_uk_de_completion_data(
CourseSession.objects.get(title="Bern 2023 a") # CourseSession.objects.get(title="Bern 2023 a")
) # )
create_course_uk_de_assignment_completion_data( create_course_uk_de_assignment_completion_data(
assignment=Assignment.objects.get( assignment=Assignment.objects.get(
slug="überbetriebliche-kurse-assignment-überprüfen-einer-motorfahrzeugs-versicherungspolice" slug="überbetriebliche-kurse-assignment-überprüfen-einer-motorfahrzeugs-versicherungspolice"

View File

@ -3,6 +3,7 @@ from django.conf import settings
from django.core.management import call_command from django.core.management import call_command
from slugify import slugify from slugify import slugify
from wagtail.models import Locale, Page, Site from wagtail.models import Locale, Page, Site
from wagtail.rich_text import RichText
from wagtail_localize.models import LocaleSynchronization from wagtail_localize.models import LocaleSynchronization
from vbv_lernwelt.assignment.models import Assignment from vbv_lernwelt.assignment.models import Assignment
@ -166,14 +167,23 @@ damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
"Gesundheit", "Gesundheit",
]: ]:
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Handlungsfeld «{title}»",
parent=circle, parent=circle,
content_url=f"/media/überbetriebliche-kurse-media/category/{slugify(first_title)}", description=RichText(
f"<p>In der Mediathek unter dem Handlungsfeld «{title}» findest du alle relevanten Ressourcen für deine Fachkompetenzen.</p>"
f"<p>Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.</p>"
),
content_url=f"/course/überbetriebliche-kurse/media/category/{slugify(first_title)}",
) )
else: else:
LearningContentPlaceholderFactory( LearningContentMediaLibraryFactory(
title="Mediathek", title=f"Handlungsfeld «{title}»",
parent=circle, parent=circle,
description=RichText(
f"<p>In der Mediathek unter dem Handlungsfeld «{title}» findest du alle relevanten Ressourcen für deine Fachkompetenzen.</p>"
f"<p>Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.</p>"
),
content_url=f"/course/überbetriebliche-kurse/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
@ -224,10 +234,14 @@ damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
title="Verschaffe dir einen Überblick", title="Verschaffe dir einen Überblick",
parent=circle, parent=circle,
) )
LearningContentPlaceholderFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Handlungsfeld «{title}»",
parent=circle, parent=circle,
content_url=f"/media/überbetriebliche-kurse-media/category/{slugify(title)}", description=RichText(
f"<p>In der Mediathek unter dem Handlungsfeld «{title}» findest du alle relevanten Ressourcen für deine Fachkompetenzen.</p>"
f"<p>Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.</p>"
),
content_url=f"/course/überbetriebliche-kurse/media/category/{slugify(title)}",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Vorbereitungsauftrag", title="Vorbereitungsauftrag",

View File

@ -164,6 +164,7 @@ def create_circle_basis(lp, title="Basis"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Qualifikationsprofil und Zulassungsprüfung", title="Qualifikationsprofil und Zulassungsprüfung",
@ -186,6 +187,7 @@ def create_circle_basis(lp, title="Basis"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mein neuer Job", title="Mein neuer Job",
@ -216,6 +218,7 @@ def create_circle_basis(lp, title="Basis"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Einstieg in die Versicherung", title="Einstieg in die Versicherung",
@ -277,6 +280,7 @@ wie du dein Netzwerk aufbauen und erweitern kannst, um damit neue Kunden zu gewi
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Die ersten Schritte im Verkauf", title="Die ersten Schritte im Verkauf",
@ -300,6 +304,7 @@ wie du dein Netzwerk aufbauen und erweitern kannst, um damit neue Kunden zu gewi
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Vom Lead zum Termin/Telefon auf Empfehlung/Neukundengewinnung", title="Vom Lead zum Termin/Telefon auf Empfehlung/Neukundengewinnung",
@ -341,7 +346,7 @@ def create_circle_fahrzeug(lp, title="Fahrzeug"):
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Mediathek {title}",
parent=circle, parent=circle,
content_url=f"/media/versicherungsvermittler-in-media/category/{slugify(title)}", content_url=f"/course/versicherungsvermittler-in/media/category/{slugify(title)}",
) )
LearningSequenceFactory(title="Einstieg", parent=circle) LearningSequenceFactory(title="Einstieg", parent=circle)
@ -416,7 +421,7 @@ def create_circle_rechtsstreitigkeiten(lp, title="Rechtsstreitigkeiten"):
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Mediathek {title}",
parent=circle, parent=circle,
content_url=f"/media/versicherungsvermittler-in-media/category/{slugify(title)}", content_url=f"/course/versicherungsvermittler-in/media/category/{slugify(title)}",
) )
LearningSequenceFactory(title="Rechtsstreitigkeiten", parent=circle) LearningSequenceFactory(title="Rechtsstreitigkeiten", parent=circle)
@ -448,7 +453,7 @@ def create_circle_reisen(lp, title="Reisen"):
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Mediathek {title}",
parent=circle, parent=circle,
content_url=f"/media/versicherungsvermittler-in-media/category/{slugify(title)}", content_url=f"/course/versicherungsvermittler-in/media/category/{slugify(title)}",
) )
LearningSequenceFactory(title="Einstieg", parent=circle) LearningSequenceFactory(title="Einstieg", parent=circle)
@ -512,7 +517,7 @@ def create_circle_einkommenssicherung(lp, title="Einkommenssicherung"):
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Mediathek {title}",
parent=circle, parent=circle,
content_url=f"/media/versicherungsvermittler-in-media/category/{slugify(title)}", content_url=f"/course/versicherungsvermittler-in/media/category/{slugify(title)}",
) )
LearningSequenceFactory(title="Einstieg", parent=circle) LearningSequenceFactory(title="Einstieg", parent=circle)
@ -581,7 +586,7 @@ def create_circle_standard_small(
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Mediathek {title}",
parent=circle, parent=circle,
content_url=f"/media/versicherungsvermittler-in-media/category/{slugify(title, allow_unicode=True)}", content_url=f"/course/versicherungsvermittler-in/media/category/{slugify(title, allow_unicode=True)}",
) )
if lu_title is None: if lu_title is None:
@ -611,7 +616,7 @@ def create_circle_standard(lp, title, lc_title, goals=None, description=None):
LearningContentMediaLibraryFactory( LearningContentMediaLibraryFactory(
title=f"Mediathek {title}", title=f"Mediathek {title}",
parent=circle, parent=circle,
content_url=f"/media/versicherungsvermittler-in-media/category/{slugify(title)}", content_url=f"/course/versicherungsvermittler-in/media/category/{slugify(title)}",
) )
LearningSequenceFactory(title="Einstieg", parent=circle) LearningSequenceFactory(title="Einstieg", parent=circle)
@ -706,6 +711,7 @@ def create_circle_betreuen(lp, title="Betreuen"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Rafael Fasel hat Ärger mit seinem Vermieter", title="Rafael Fasel hat Ärger mit seinem Vermieter",
@ -721,6 +727,7 @@ def create_circle_betreuen(lp, title="Betreuen"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Familie Babic spart auf ein Ziel", title="Familie Babic spart auf ein Ziel",
@ -736,6 +743,7 @@ def create_circle_betreuen(lp, title="Betreuen"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Familie Bonsera kauft ein Haus", title="Familie Bonsera kauft ein Haus",
@ -751,6 +759,7 @@ def create_circle_betreuen(lp, title="Betreuen"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Patrizia Feller macht sich selbstständig", title="Patrizia Feller macht sich selbstständig",
@ -766,6 +775,7 @@ def create_circle_betreuen(lp, title="Betreuen"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Davide und Giulia vererben ihr Haus", title="Davide und Giulia vererben ihr Haus",
@ -796,6 +806,7 @@ def create_circle_vernetzen(lp, title="Vernetzen"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningSequenceFactory(title="Training", parent=circle) LearningSequenceFactory(title="Training", parent=circle)
@ -827,6 +838,7 @@ def create_circle_pruefungsvorbereitung(lp, title="Prüfungsvorbereitung"):
LearningContentPlaceholderFactory( LearningContentPlaceholderFactory(
title="Mediathek", title="Mediathek",
parent=circle, parent=circle,
content_url="/course/versicherungsvermittler-in/media",
) )
LearningSequenceFactory(title="Aufbau", parent=circle) LearningSequenceFactory(title="Aufbau", parent=circle)