vbv/server/vbv_lernwelt/course/creators/uk_course.py

951 lines
46 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import wagtail_factories
from django.conf import settings
from django.core.management import call_command
from slugify import slugify
from wagtail.models import Locale, Page, Site
from wagtail.rich_text import RichText
from wagtail_localize.models import LocaleSynchronization
from vbv_lernwelt.assignment.models import Assignment
from vbv_lernwelt.core.admin import User
from vbv_lernwelt.course.consts import COURSE_UK, COURSE_UK_FR
from vbv_lernwelt.course.creators.uk_circle_goals_fr import UK_FR_CIRCLE_GOALS
from vbv_lernwelt.course.models import CoursePage
from vbv_lernwelt.learnpath.tests.learning_path_factories import (
CircleFactory,
LearningContentAssignmentFactory,
LearningContentAttendanceCourseFactory,
LearningContentDocumentListFactory,
LearningContentFeedbackFactory,
LearningContentMediaLibraryFactory,
LearningContentPlaceholderFactory,
LearningContentTestFactory,
LearningPathFactory,
LearningSequenceFactory,
LearningUnitFactory,
TopicFactory,
)
from vbv_lernwelt.media_library.tests.media_library_factories import (
LearnMediaBlockFactory,
)
def create_uk_learning_path(course_id=COURSE_UK, user=None, skip_locales=True):
if user is None:
user = User.objects.get(username="info@iterativ.ch")
site = Site.objects.filter(is_default_site=True).first()
if not site:
site = wagtail_factories.SiteFactory(is_default_site=True)
if settings.APP_ENVIRONMENT == "development":
site.port = 8000
site.save()
course_page = CoursePage.objects.get(course_id=course_id)
lp = LearningPathFactory(
title="Lernpfad",
parent=course_page,
)
TopicFactory(title="1. Lehrjahr", is_visible=True, parent=lp)
create_uk_circle_kickoff(lp)
create_uk_circle_basis(lp)
create_uk_circle_fahrzeug(lp)
create_uk_circle(lp, title="Haushalt Teil 1")
create_uk_circle(lp, title="Haushalt Teil 2")
TopicFactory(title="2. Lehrjahr", is_visible=True, parent=lp)
create_uk_circle(lp, title="Reisen & Rechtsstreitigkeiten")
create_uk_circle(lp, title="Wohneigentum")
create_uk_circle(lp, title="KMU Teil 1")
create_uk_circle(lp, title="KMU Teil 2")
create_uk_circle(lp, title="3-Säulenkonzept")
create_uk_circle(lp, title="Einkommenssicherung (Invalidität)")
create_uk_circle(lp, title="Einkommenssicherung (Todesfall)")
create_uk_circle(lp, title="Pensionierung (Todesfall)")
TopicFactory(title="3. Lehrjahr", is_visible=True, parent=lp)
create_uk_circle(lp, title="Gesundheit")
create_uk_circle(lp, title="Prüfungsvorbereitung Teil 1")
create_uk_circle(lp, title="Prüfungsvorbereitung Teil 2")
# locales
if not skip_locales:
locale_de = Locale.objects.get(language_code="de-CH")
locale_fr, _ = Locale.objects.get_or_create(language_code="fr-CH")
LocaleSynchronization.objects.get_or_create(
locale_id=locale_fr.id, sync_from_id=locale_de.id
)
locale_it, _ = Locale.objects.get_or_create(language_code="it-CH")
LocaleSynchronization.objects.get_or_create(
locale_id=locale_it.id, sync_from_id=locale_de.id
)
call_command("sync_locale_trees")
# all pages belong to 'admin' by default
Page.objects.update(owner=user)
def create_uk_fr_learning_path(course_id=COURSE_UK_FR, user=None, skip_locales=True):
if user is None:
user = User.objects.get(username="info@iterativ.ch")
site = Site.objects.filter(is_default_site=True).first()
if not site:
site = wagtail_factories.SiteFactory(is_default_site=True)
if settings.APP_ENVIRONMENT == "development":
site.port = 8000
site.save()
course_page = CoursePage.objects.get(course_id=course_id)
lp = LearningPathFactory(
title="Lernpfad",
parent=course_page,
)
TopicFactory(title="1ère année", is_visible=True, parent=lp)
create_uk_fr_circle_kickoff(lp, title="Coup d'envoi")
create_uk_fr_circle_basis(lp, title="Base")
create_uk_fr_circle_fahrzeug(lp, title="Véhicule")
create_uk_circle(lp, title="Budget Partie 1")
create_uk_circle(lp, title="Budget Partie 2")
TopicFactory(title="2ème année", is_visible=True, parent=lp)
create_uk_circle(lp, title="Voyages / Protection juridique")
create_uk_circle(lp, title="Proprieté du logement")
create_uk_circle(lp, title="PME Partie 1")
create_uk_circle(lp, title="PME Partie 2")
create_uk_circle(lp, title="Concept des 3")
create_uk_circle(lp, title="Garantie des revenus, Partie 1")
create_uk_circle(lp, title="Garantie des revenus, Partie 2")
create_uk_circle(lp, title="Retraite")
TopicFactory(title="3ème année", is_visible=True, parent=lp)
create_uk_circle(lp, title="Santé")
create_uk_circle(lp, title="Préparation à l'examen, Partie 1")
create_uk_circle(lp, title="Préparation à l'examen, Partie 2")
# locales
if not skip_locales:
locale_de = Locale.objects.get(language_code="de-CH")
locale_fr, _ = Locale.objects.get_or_create(language_code="fr-CH")
LocaleSynchronization.objects.get_or_create(
locale_id=locale_fr.id, sync_from_id=locale_de.id
)
locale_it, _ = Locale.objects.get_or_create(language_code="it-CH")
LocaleSynchronization.objects.get_or_create(
locale_id=locale_it.id, sync_from_id=locale_de.id
)
call_command("sync_locale_trees")
# all pages belong to 'admin' by default
Page.objects.update(owner=user)
def create_uk_circle(lp, title="Kickoff"):
circle = CircleFactory(
title=title,
parent=lp,
description="""
In diesem Circle erfährst du wie der Lehrgang aufgebaut ist.
Zudem lernst du die wichtigsten Grundlagen,
damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
""".strip(),
)
LearningSequenceFactory(
title="Vorbereitung", parent=circle, icon="it-icon-ls-start"
)
LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle)
first_title = title.split()[0]
if first_title in [
"Haushalt",
"Reisen",
"Wohneigentum",
"KMU",
"Einkommenssicherung",
"Pensionierung",
"Gesundheit",
]:
LearningContentMediaLibraryFactory(
title=f"Handlungsfeld «{title}»",
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/category/{slugify(first_title)}",
)
else:
LearningContentMediaLibraryFactory(
title=f"Handlungsfeld «{title}»",
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(
title="Vorbereitungsauftrag",
parent=circle,
)
LearningSequenceFactory(title="Training", parent=circle)
LearningUnitFactory(title="Unterlagen", title_hidden=True, parent=circle)
LearningContentPlaceholderFactory(
title="Unterlagen für den Unterricht",
parent=circle,
)
LearningUnitFactory(title="Kompetenznachweis", title_hidden=True, parent=circle)
LearningContentPlaceholderFactory(
title="Wissens- und Verständnisfragen",
parent=circle,
)
LearningContentFeedbackFactory(
parent=circle,
)
LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end")
LearningUnitFactory(title="Transfer", parent=circle)
LearningContentPlaceholderFactory(
title="Reflexion",
parent=circle,
)
LearningContentFeedbackFactory(
parent=circle,
)
def create_uk_circle_kickoff(lp, title="Kickoff"):
circle = CircleFactory(
title=title,
parent=lp,
description="""
In diesem Circle erfährst du wie die überbetrieblichen Kurse aufgebaut sind. Zudem lernst du die wichtigsten Grundlagen, damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
""".strip(),
goals=UK_CIRCLE_GOALS["kickoff"],
)
LearningSequenceFactory(
title="Vorbereitung", parent=circle, icon="it-icon-ls-start"
)
LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle)
LearningContentMediaLibraryFactory(
title=f"Allgemeines zu Versicherungen",
parent=circle,
description=RichText(
f"<p>In der Mediathek unter «Allgemeines zu Versicherungen» 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",
)
LearningContentAssignmentFactory(
title="Versicherungswirtschaft",
assignment_type="PREP_ASSIGNMENT",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-kickoff-versicherungswirtschaft"
),
),
LearningSequenceFactory(title="Training", parent=circle)
LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle)
LearningContentAttendanceCourseFactory(
title="Präsenzkurs Kickoff",
parent=circle,
)
LearningContentDocumentListFactory(
title="Unterlagen für den Unterricht",
parent=circle,
documents=[
(
"document",
LearnMediaBlockFactory(
title="Präsentation 1a",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Präsentation 1b",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Arbeitsblatt Einteilung der Versicherungen",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf",
),
),
],
)
LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle)
LearningContentFeedbackFactory(
parent=circle,
)
LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end")
LearningUnitFactory(title="Reflexion", title_hidden=True, parent=circle)
LearningContentAssignmentFactory(
title="Reflexion",
assignment_type="REFLECTION",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-reflexion"
),
),
def create_uk_fr_circle_kickoff(lp, title="Coup d'envoi"):
circle = CircleFactory(
title=title,
parent=lp,
description="""
In diesem Circle erfährst du wie die überbetrieblichen Kurse aufgebaut sind. Zudem lernst du die wichtigsten Grundlagen, damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst.
""".strip(),
goals=UK_CIRCLE_GOALS["kickoff"],
)
LearningSequenceFactory(
title="Vorbereitung", parent=circle, icon="it-icon-ls-start"
)
LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle)
LearningContentMediaLibraryFactory(
title=f"Allgemeines zu Versicherungen",
parent=circle,
description=RichText(
f"<p>In der Mediathek unter «Allgemeines zu Versicherungen» 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",
)
LearningContentAssignmentFactory(
title="Versicherungswirtschaft",
assignment_type="PREP_ASSIGNMENT",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-kickoff-versicherungswirtschaft"
),
),
LearningSequenceFactory(title="Training", parent=circle)
LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle)
LearningContentAttendanceCourseFactory(
title="Präsenzkurs Kickoff",
parent=circle,
)
LearningContentDocumentListFactory(
title="Unterlagen für den Unterricht",
parent=circle,
documents=[
(
"document",
LearnMediaBlockFactory(
title="Präsentation 1a",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Präsentation 1b",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Arbeitsblatt Einteilung der Versicherungen",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf",
),
),
],
)
LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle)
LearningContentFeedbackFactory(
parent=circle,
)
LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end")
LearningUnitFactory(title="Reflexion", title_hidden=True, parent=circle)
LearningContentAssignmentFactory(
title="Reflexion",
assignment_type="REFLECTION",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-reflexion"
),
),
def create_uk_circle_basis(lp, title="Basis"):
circle = CircleFactory(
title=title,
parent=lp,
description="""
In diesem Circle lernst du die wichtigsten Grundlagen bezüglich Versicherungswirtschaft und Versicherungsrecht.
""".strip(),
goals=UK_CIRCLE_GOALS["basis"],
)
LearningSequenceFactory(
title="Vorbereitung", parent=circle, icon="it-icon-ls-start"
)
LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle)
LearningContentMediaLibraryFactory(
title=f"Allgemeines zu Versicherungen",
parent=circle,
description=RichText(
f"<p>In der Mediathek unter «Allgemeines zu Versicherungen» 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",
)
LearningContentAssignmentFactory(
title="Vorbereitungsauftrag Circle Basis",
assignment_type="PREP_ASSIGNMENT",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-circle-basis"
),
),
LearningSequenceFactory(title="Training", parent=circle)
LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle)
LearningContentAttendanceCourseFactory(
title="Präsenzkurs Basis",
parent=circle,
)
LearningContentDocumentListFactory(
title="Unterlagen für den Unterricht",
parent=circle,
documents=[
(
"document",
LearnMediaBlockFactory(
title="Präsentation",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Risikomanagement",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Quizzes",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_05_QR_Quizzes.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Versicherungsrecht",
description="Antragsannahme, Bindefrist und Widerrufsrecht Kleine Fallstudie",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_06_A_Versicherungsrecht.pdf",
),
),
],
)
LearningUnitFactory(title="Kompetenznachweis", title_hidden=True, parent=circle)
LearningContentTestFactory(
title="Wissens- und Verständnisfragen",
parent=circle,
description=RichText(
"<p>Folgender Test mit Wissens- und Verständnisfragen ist Teil des Kompetenznachweises. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.</p>"
),
checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden habe und den Test durchführen möchte.",
content_url="https://exam.vbv-afa.ch/",
)
LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle)
LearningContentFeedbackFactory(
parent=circle,
)
LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end")
LearningUnitFactory(title="Reflexion", parent=circle)
LearningContentAssignmentFactory(
title="Reflexion",
assignment_type="REFLECTION",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-reflexion"
),
),
def create_uk_fr_circle_basis(lp, title="Base"):
circle = CircleFactory(
title=title,
parent=lp,
description="""
In diesem Circle lernst du die wichtigsten Grundlagen bezüglich Versicherungswirtschaft und Versicherungsrecht.
""".strip(),
goals=UK_CIRCLE_GOALS["basis"],
)
LearningSequenceFactory(
title="Vorbereitung", parent=circle, icon="it-icon-ls-start"
)
LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle)
LearningContentMediaLibraryFactory(
title=f"Allgemeines zu Versicherungen",
parent=circle,
description=RichText(
f"<p>In der Mediathek unter «Allgemeines zu Versicherungen» 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",
)
LearningContentAssignmentFactory(
title="Vorbereitungsauftrag Circle Basis",
assignment_type="PREP_ASSIGNMENT",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-circle-basis"
),
),
LearningSequenceFactory(title="Training", parent=circle)
LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle)
LearningContentAttendanceCourseFactory(
title="Präsenzkurs Basis",
parent=circle,
)
LearningContentDocumentListFactory(
title="Unterlagen für den Unterricht",
parent=circle,
documents=[
(
"document",
LearnMediaBlockFactory(
title="Präsentation",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Risikomanagement",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Quizzes",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_05_QR_Quizzes.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Versicherungsrecht",
description="Antragsannahme, Bindefrist und Widerrufsrecht Kleine Fallstudie",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_BA_06_A_Versicherungsrecht.pdf",
),
),
],
)
LearningUnitFactory(title="Kompetenznachweis", title_hidden=True, parent=circle)
LearningContentTestFactory(
title="Wissens- und Verständnisfragen",
parent=circle,
description=RichText(
"<p>Folgender Test mit Wissens- und Verständnisfragen ist Teil des Kompetenznachweises. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.</p>"
),
checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden habe und den Test durchführen möchte.",
content_url="https://exam.vbv-afa.ch/",
)
LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle)
LearningContentFeedbackFactory(
parent=circle,
)
LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end")
LearningUnitFactory(title="Reflexion", parent=circle)
LearningContentAssignmentFactory(
title="Reflexion",
assignment_type="REFLECTION",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"überbetriebliche-kurse-assignment-reflexion"
),
),
def create_uk_circle_fahrzeug(lp, title="Fahrzeug"):
circle = CircleFactory(
title=title,
parent=lp,
description="In diesem Circle lernst du alles rund um das Fahrzeug und die dazugehörigen Versicherungen.",
goals=UK_CIRCLE_GOALS["fahrzeug"],
)
course_slug = lp.slug.replace("-lp", "")
LearningSequenceFactory(
title="Vorbereitung", parent=circle, icon="it-icon-ls-start"
)
LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle)
LearningContentMediaLibraryFactory(
title=f"Handlungsfeld «{title}»",
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/{course_slug}/media/category/{slugify(title)}",
)
LearningContentAssignmentFactory(
title="Fahrzeug - Mein erstes Auto",
assignment_type="PREP_ASSIGNMENT",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"{course_slug}-assignment-fahrzeug-mein-erstes-auto"
),
),
LearningSequenceFactory(title="Training", parent=circle)
LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle)
LearningContentAttendanceCourseFactory(
title="Präsenzkurs Fahrzeug",
parent=circle,
)
LearningContentDocumentListFactory(
title="Unterlagen für den Unterricht",
parent=circle,
documents=[
(
"document",
LearnMediaBlockFactory(
title="Präsentation",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_FZ_00_Präsentation.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Begriffe",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_FZ_02_Begriffe.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Checkliste",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_FZ_04_Checkliste.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Arbeitsblatt Schadenfälle",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_FZ_05_A_Schaden.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Überblick Kasko",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_FZ_07_Kasko.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Offerte und anschliessendes Verkaufsgespräch",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_FZ_08_A_Offerte und Verkaufsgespräch.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Arbeitsblatt Schadenfälle Reserve",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Dokument anzeigen",
url="/static/media/uk/de_üK1_FZ_A_Reserve_Schaden.pdf",
),
),
],
)
LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle)
LearningContentFeedbackFactory(
parent=circle,
)
LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end")
LearningUnitFactory(title="Kompetenznachweis", title_hidden=True, parent=circle)
LearningContentAssignmentFactory(
title="Überprüfen einer Motorfahrzeug-Versicherungspolice",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"{course_slug}-assignment-überprüfen-einer-motorfahrzeugs"
),
),
LearningUnitFactory(title="Reflexion", title_hidden=True, parent=circle)
LearningContentAssignmentFactory(
title="Reflexion",
assignment_type="REFLECTION",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"{course_slug}-assignment-reflexion"
),
),
def create_uk_fr_circle_fahrzeug(lp, title="Véhicule"):
circle = CircleFactory(
title=title,
parent=lp,
description="Dans ce cercle, tu apprends tout ce qui concerne les assurances véhicules à moteur.",
goals=UK_FR_CIRCLE_GOALS["fahrzeug"],
)
course_slug = lp.slug.replace("-lp", "")
LearningSequenceFactory(title="Préparation", parent=circle, icon="it-icon-ls-start")
LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle)
LearningContentMediaLibraryFactory(
title=f"Champs daction «Véhicule à moteur»",
parent=circle,
description=RichText(
f"<p>Trouve toutes les ressources des champs daction, comme les outils didactiques, les liens et autres informations utiles.</p>"
f"<p>Nous te recommandons de te familiariser avec le sujet avant de suivre les autres unités de cours.</p>"
),
content_url=f"/course/{course_slug}/media/category/{slugify(title)}",
)
LearningContentAssignmentFactory(
title="Véhicule à moteur Ma première voiture",
assignment_type="PREP_ASSIGNMENT",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"{course_slug}-assignment-véhicule-à-moteur-ma-première-voiture"
),
),
LearningSequenceFactory(title="Training", parent=circle)
LearningUnitFactory(title="Cours de présence", title_hidden=True, parent=circle)
LearningContentAttendanceCourseFactory(
title="Cours de présence Véhicule à moteur",
parent=circle,
)
LearningContentDocumentListFactory(
title="Documentation pour la formation",
parent=circle,
documents=[
(
"document",
LearnMediaBlockFactory(
title="Présentation",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Afficher le document",
url="/static/media/uk/fr_üK1_FZ_00_Prгentation.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Notions",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Afficher le document",
url="/static/media/uk/fr_üK1_FZ_02_Begriffe.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Checklist",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Afficher le document",
url="/static/media/uk/fr_üK1_FZ_04_Checkliste.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Fiche de travail cas de sinistres",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Afficher le document",
url="/static/media/uk/fr_üK1_FZ_05_A_Schaden.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Überblick Kasko",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Aperçu casco",
url="/static/media/uk/fr_üK1_FZ_07_Kasko.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Offre et entretien de vente",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Afficher le document",
url="/static/media/uk/fr_üK1_FZ_08_A_Offerte und Verkaufsgespräch.pdf",
),
),
(
"document",
LearnMediaBlockFactory(
title="Fiche de travail cas de sinistres (réserve)",
description="",
icon_url="/static/icons/demo/icon-hf-book.png",
link_display_text="Afficher le document",
url="/static/media/uk/fr_üK1_FZ_A_Reserve_Schaden.pdf",
),
),
],
)
LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle)
LearningContentFeedbackFactory(
parent=circle,
)
LearningSequenceFactory(title="Transfert", parent=circle, icon="it-icon-ls-end")
LearningUnitFactory(
title="Contrôle de compétences", title_hidden=True, parent=circle
)
LearningContentAssignmentFactory(
title="Vérification d'une police dassurance de véhicule à moteur",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"{course_slug}-assignment-vérification-d-une-police-d-assurance-de-véhicule-à-moteur"
),
),
LearningUnitFactory(title="Réflexion", title_hidden=True, parent=circle)
LearningContentAssignmentFactory(
title="Réflexion",
assignment_type="REFLECTION",
parent=circle,
content_assignment=Assignment.objects.get(
slug__startswith=f"{course_slug}-assignment-reflexion"
),
),
UK_CIRCLE_GOALS = {
"kickoff": """
<p class="mt-4">Hey, willkommen im ersten überbetrieblichen Kurs! Du bist in einer spannenden Branche gelandet. Wir wissen, dass es am Anfang oft eine Herausforderung sein kann, sich in einem neuen Umfeld zurechtzufinden und die vielen neuen Eindrücke zu verarbeiten. Aber keine Sorge, wir sind hier, um dir dabei zu helfen. In deiner Ausbildung wirst du viele neue Fähigkeiten erlernen und dein Wissen vertiefen. In diesem Circle helfen wir dir dabei, den Überblick zu gewinnen und dich mit den neuen Arbeitsabläufen und myVBV vertraut zu machen. Lass uns gemeinsam diese neue Herausforderung meistern und das Beste aus deiner Ausbildung herausholen! </p>
<p class="mt-4">Du baust das Grundlagenwissen für die folgenden Themenfelder auf:</p>
<ul>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie sich die kaufmännische Grundbildung mit den 3 Lernorten aufbaut</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie myVBV aufgebaut ist und wie du dich im Lernpfad zurechtfindest</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie sich die verschiedenen überbetrieblichen Kurse über die drei Lehrjahre verteilen</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie sich die üK-Kompetenznachweise zusammensetzen</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie time2learn aufgebaut ist und wie die betrieblichen Instrumente (Praxisaufträge) eingesetzt werde</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie du deine Lernreise organisieren kannst und dich dabei mit einem Lernbegleiter und einem Lernpartner bzw. einer Lernpartnerin verbinden kannst</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Was eine Versicherung ist</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie Versicherungen eingeteilt werden können</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Welches die wesentlichen Anspruchsgruppen an einen Versicherer sind </li>
</ul>
<p class="mt-4">Du arbeitest an folgenden Leistungskriterien aus dem Qualifikationsprofil:</p>
<ul>
<li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>c3.pv.ük6: Sie nennen die gängigen Grundsätze bei der Gestaltung von Produkten und Dienstleistungen im Versicherungsbereich. (K1)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>d2.pv.ük1: Sie beschreiben die wichtigsten gesetzlichen Grundlagen im Versicherungsbereich umfassend. (K2)</li>
</ul>
""",
"basis": """
<p class="mt-4">Herzlich willkommen in der aufregenden Welt der Versicherungen! Als Lernende/r stehst du vielen neuen und wichtigen Entscheidungen gegenüber. Ob du dein erstes Auto kaufst oder deine erste Wohnung mietest - es gibt immer Risiken, die du beachten solltest. In der Welt der Versicherungen geht es darum, diese Risiken zu minimieren und deine finanzielle Sicherheit zu gewährleisten. Hier kannst du lernen, wie Versicherungen funktionieren, welche Arten von Versicherungen es gibt und welche Schritte du unternehmen kannst, um dich selbst, deine Lieben und auch deine Kunden zu schützen. Tauche ein in die spannende Welt und entdecke, wie Versicherungen dir und deinen Kunden helfen können, für die Zukunft vorbereitet zu sein! </p>
<p class="mt-4">Du baust das Grundlagenwissen für die folgenden Themenfelder auf:</p>
<ul>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Welches die wichtigsten Geschäftsprozesse innerhalb der Wertschöpfungskette sind</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Welches die wichtigsten Kennzahlen eines Versicherers sind</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie sich die Prämie zusammensetzt</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Welches die wichtigsten Finanzierungssysteme sind</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie man ein Risk Management anwendet</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie Versicherer beaufsichtigt werden</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie ein Versicherungsvertag entsteht</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Welches die Rechte und Pflichten der Vertragsparteien sind</li>
</ul>
<p class="mt-4">Du arbeitest an folgenden Leistungsziele aus dem Qualifikationsprofil:</p>
<ul>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>c3.pv.ük2: Sie erläutern die relevanten rechtlichen Grundlagen ihrer Branche situationsgerecht. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>c3.pv.ük5 Sie erläutern die relevanten Bestimmungen des Versicherungsvertragsgesetzes (VVG) und des Unfallversicherungsgesetzes (UVG) in Bezug zu Privatversicherungen. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>c3.pv.ük6: Sie nennen die gängigen Grundsätze bei der Gestaltung von Produkten und Dienstleistungen im Versicherungsbereich. (K1)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>e2.pv.ük3 Sie zeigen die Wertschöpfungskette für die gängigsten branchenspezifischen Produkte beziehungsweise Dienstleistungen auf. (K2)</li>
</ul>
""",
"fahrzeug": """
<p class="mt-4">Das Auto ist für viele der grösste Stolz. Es birgt aber auch ein grosses Gefahrenpotenzial. Dabei geht es bei den heutigen Fahrzeugpreisen und Reparaturkosten rasch um namhafte Summen, die der Fahrzeugbesitzer und die Fahrzeugbesitzerin in einem grösseren Schadenfall oft nur schwer selbst aufbringen kann. In der Motorfahrzeugversicherung geht es darum, dich und andere Verkehrsteilnehmer im Falle eines Unfalls zu schützen und finanziell abzusichern. Dieser Circle hilft dir dabei, den Durchblick im Motorfahrzeug-Versicherungsdschungel zu behalten und sicher auf der Strasse unterwegs zu sein!</p>
<p class="mt-4">In diesem Circle baust du deine Handlungskompetenzen für diese Themen aus:</p>
<ul>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie man sein Auto optimal schützen kann</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Die Grundzüge des Haftpflichtrechts</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Welche Aspekte du bei einer Offerte beachten musst</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Wie man sein Auto optimal schützen kann</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Die Grundzüge des Haftpflichtrechts</li>
</ul>
<p class="mt-4">Du arbeitest an folgenden Leistungsziele aus dem Qualifikationsprofil:</p>
<ul>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>c3.pv.ük2: Sie erläutern die relevanten rechtlichen Grundlagen ihrer Branche situationsgerecht. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>c3.pv.ük7: Sie erläutern die gesetzlichen Bestimmungen bei Schaden- und Leistungsfällen. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>c3.pv.ük11: Sie beurteilen gängige Versicherungslösungen fachkundig. (K3)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>d2.pv.ük1: Sie beschreiben die wichtigsten gesetzlichen Grundlagen im Versicherungsbereich umfassend. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>d2.pv.ük2: Sie nennen die relevanten Dienstleistungen und Produkte im Versicherungsbereich. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>d2.pv.ük3: Sie erläutern die Leistungen und Produkte im Versicherungsbereich. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>d2.pv.ük4: Sie erläutern die Prozesse und Abläufe im privaten Versicherungsbereich. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>e4.pv.ük1: Sie erläutern die Dienstleistungen des Betriebs. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>e4.pv.ük2: Sie unterscheiden Mitbewerber in der privaten Versicherungsbranche anhand der relevanten Kriterien. (K2)</li>
<li class="flex items-center"><it-icon-check class="h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>e4.pv.ük4: Sie erläutern die Grundlagen der Produkte von Privatversicherungen. (K2)</li>
</ul>
""",
}