More (copied) content for learningpath

This commit is contained in:
Daniel Egger 2022-07-04 09:37:26 +02:00
parent 988dd7c0de
commit cc293400b4
6 changed files with 169 additions and 176 deletions

View File

@ -46,7 +46,7 @@ function colorBgClass(color: string, value: number) {
<div class="mt-8 mb-8 flex flex-col gap-4 flex-wrap lg:flex-row">
<div class="inline-flex flex-col">
message
<it-icon-message/>
<it-icon-message class="it-icon"/>
</div>
<div class="inline-flex flex-col">

View File

@ -55,6 +55,7 @@ module.exports = {
pattern: /bg-gray-(100|300|500|700|900)/,
},
'bg-blue-900',
'it-icon',
],
plugins: [
require('@tailwindcss/typography'),

View File

@ -10,4 +10,4 @@ def command(customer_language):
print("cypress reset data")
delete_default_learning_path()
create_default_learning_path(skip_locales=False)
create_default_learning_path(skip_locales=True)

View File

@ -5,4 +5,4 @@ from vbv_lernwelt.learnpath.tests.create_default_learning_path import create_def
@click.command()
def command():
create_default_learning_path(skip_locales=False)
create_default_learning_path(skip_locales=True)

View File

@ -22,6 +22,10 @@ class LearningPath(Page):
class Meta:
verbose_name = "Learning Path"
def full_clean(self, *args, **kwargs):
self.slug = find_available_slug(Page, slugify(self.title, allow_unicode=True))
super(LearningPath, self).full_clean(*args, **kwargs)
def __str__(self):
return f"{self.title}"
@ -109,7 +113,8 @@ class Circle(Page):
)
def full_clean(self, *args, **kwargs):
self.slug = find_available_slug(Circle, slugify(self.title, allow_unicode=True))
# TODO: why own slug function?
self.slug = find_available_slug(Page, slugify(self.title, allow_unicode=True))
super(Circle, self).full_clean(*args, **kwargs)
class Meta:

View File

@ -12,71 +12,16 @@ from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFac
ExerciseBlockFactory, DocumentBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory
def create_default_learning_path(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()
# create_default_competences()
lp = LearningPathFactory(title="Versicherungsvermittler/in", parent=site.root_page)
tp = TopicFactory(title="Basissdf", is_visible=False, parent=lp)
circle_1 = CircleFactory(
title="Basis",
parent=lp,
def create_circle(title, learning_path):
return CircleFactory(
title=title,
parent=learning_path,
description="""
In diesem Circle erklären wir dir, wie der Lehrgang
Versicherungsvermittler / in " aufgebaut ist. Zudem vermitteln wir dir die wichtigsten Grundlagen,
damit erfolgreich mit deinem Lernpfad starten kannst.
""")
tp = TopicFactory(title="Gewinnen von Kunden", parent=lp)
circle_2 = CircleFactory(
title="Gewinnen",
parent=lp,
description="""
Versicherungsvermittlerinnen und -vermittler verfügen über
ein starkes Netzwerk, das sie gezielt pflegen und ausbauen. Sie beraten und betreuen ihre bestehenden Kundinnen und Kunden professionell und gewinnen so ihr Vertrauen. Dadurch schaffen sie die Basis für das Gewinnen
von neuen Kundinnen und Kunden. Versicherungsvermittlerinnen und -vermittler sprechen ihre bestehenden Kundinnen
und Kunden auf Weiterempfehlung an. So nutzen sie ihre
bestehenden Kontakte geschickt für das Anwerben von
Neukundinnen und -kunden.""",
goals=[
('goal', '... Bestehende Kunden so zu beraten, dass sie von diesen weiterempfohlen werden'),
('goal', '... Geeignete Personen wie z.B. Garagisten, Architekten, Treuhänder auf die Vermittlung / Zusammenarbeit anzusprechen'),
('goal', '... Verschiedene Datenquellen wie Internet, Telefonbuch, Handelszeitung, Baugesuche etc. Gezielt für die Gewinnung von Neukunden zu benützen'),
('goal', '... Ein beliebiges Gespräch resp. Einen bestehenden Kontakt in die Richtung «Versicherung» zu lenken'),
('goal', '... Das Thema Risiko und Sicherheit in einem Gespräch gezielt und auf die Situation des jeweiligen Gesprächspartners bezogen einfliessen zu lassen'),
('goal', '... Im täglichen Kontakt potenzielle Kundinnen und Kunden zu erkennen'),
],
)
tp = TopicFactory(title="Beraten der Kunden", parent=lp)
circle_3 = CircleFactory(title="Einstieg", parent=lp)
circe_analyse = CircleFactory(
title="Analyse",
parent=lp,
description="""
Nach dem Gespräch werten sie die Analyse aus und erstellen mit den
zur Verfügung stehenden Systemen formal korrekte Lösungsvorschläge bzw.
Ausschreibungen. Je nach Komplexität der Situation ziehen sie die nötigen
Fachspezialisten bei.
""",
Nach dem Gespräch werten sie die Analyse aus und erstellen mit den
zur Verfügung stehenden Systemen formal korrekte Lösungsvorschläge bzw.
Ausschreibungen. Je nach Komplexität der Situation ziehen sie die nötigen
Fachspezialisten bei.
""",
job_situations=[
('job_situation', 'Absicherung der Familie'),
('job_situation', 'Prämien einsparen'),
@ -97,10 +42,12 @@ Fachspezialisten bei.
]
)
LearningSequenceFactory(title='Starten', parent=circe_analyse, icon='it-icon-ls-start')
def create_circle_children(circle, title):
LearningSequenceFactory(title='Starten', parent=circle, icon='it-icon-ls-start')
LearningContentFactory(
title='Einleitung Circle "Anlayse"',
parent=circe_analyse,
title=f'Einleitung Circle "{title}"',
parent=circle,
minutes=15,
contents=[('video', VideoBlockFactory(
url='https://www.youtube.com/embed/qhPIfxS2hvI',
@ -109,10 +56,10 @@ Fachspezialisten bei.
))]
)
LearningSequenceFactory(title='Beobachten', parent=circe_analyse, icon='it-icon-ls-watch')
LearningSequenceFactory(title='Beobachten', parent=circle, icon='it-icon-ls-watch')
lu = LearningUnitFactory(
title='Absicherung der Familie',
parent=circe_analyse,
parent=circle,
)
LearningUnitQuestionFactory(
title="Ich bin in der Lage, mit geeigneten Fragestellungen die Deckung von Versicherungen zu erfassen.",
@ -124,7 +71,7 @@ Fachspezialisten bei.
)
LearningContentFactory(
title='Ermittlung des Kundenbedarfs',
parent=circe_analyse,
parent=circle,
minutes=30,
contents=[('podcast', PodcastBlockFactory(
description='Die Ermittlung des Kundenbedarfs muss in einem eingehenden Gespräch herausgefunden werden. Höre dazu auch diesen Podcast an.',
@ -133,280 +80,320 @@ Fachspezialisten bei.
)
LearningContentFactory(
title='Kundenbedürfnisse erkennen',
parent=circe_analyse,
parent=circle,
minutes=30,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Was braucht eine Familie?',
parent=circe_analyse,
parent=circle,
minutes=60,
contents=[('exercise', ExerciseBlockFactory())]
)
LearningSequenceFactory(title='Anwenden', parent=circe_analyse, icon='it-icon-ls-apply')
lu = LearningUnitFactory(title='Prämien einsparen', parent=circe_analyse)
LearningSequenceFactory(title='Anwenden', parent=circle, icon='it-icon-ls-apply')
lu = LearningUnitFactory(title='Prämien einsparen', parent=circle)
LearningUnitQuestionFactory(
title="Passende Frage zu Anwenden",
parent=lu
)
LearningContentFactory(
title='Versicherungsbedarf für Familien',
parent=circe_analyse,
parent=circle,
minutes=60,
contents=[('exercise', ExerciseBlockFactory())]
)
LearningContentFactory(
title='Alles klar?',
parent=circe_analyse,
parent=circle,
minutes=60,
contents=[('exercise', ExerciseBlockFactory())]
)
lu = LearningUnitFactory(title='Sich selbständig machen', parent=circe_analyse)
lu = LearningUnitFactory(title='Sich selbständig machen', parent=circle)
LearningUnitQuestionFactory(
title="Passende Frage zu 'Sich selbständig machen'",
parent=lu
)
LearningContentFactory(
title='GmbH oder AG',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('video', VideoBlockFactory())]
)
LearningContentFactory(
title='Tiertherapie Patrizia Feller',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('exercise', ExerciseBlockFactory())]
)
lu = LearningUnitFactory(title='Auto verkaufen', parent=circe_analyse)
lu = LearningUnitFactory(title='Auto verkaufen', parent=circle)
LearningUnitQuestionFactory(
title='Passende Frage zu "Auto verkaufen"',
parent=lu
)
LearningContentFactory(
title='Motorfahrzeugversicherung',
parent=circe_analyse,
parent=circle,
minutes=240,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Nora kauft sich ein neues Auto',
parent=circe_analyse,
parent=circle,
minutes=60,
contents=[('podcast', PodcastBlockFactory())]
)
LearningContentFactory(
title='Ermittlung des Kundenbedarfs',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('document', DocumentBlockFactory())]
)
LearningContentFactory(
title='Motorfahrzeug kaufen',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('exercise', ExerciseBlockFactory())]
)
lu = LearningUnitFactory(title='Pensionierung', parent=circe_analyse)
lu = LearningUnitFactory(title='Pensionierung', parent=circle)
LearningUnitQuestionFactory(
title='Passende Frage zu "Pensionierung"',
parent=lu
)
LearningContentFactory(
title='3-Säulen-Prinzip',
parent=circe_analyse,
parent=circle,
minutes=240,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Altersvorsorge',
parent=circe_analyse,
parent=circle,
minutes=240,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='AHV',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('document', DocumentBlockFactory())]
)
LearningContentFactory(
title='Altersvorsorge planen',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('exercise', ExerciseBlockFactory())]
)
lu = LearningUnitFactory(title='Reisen', parent=circe_analyse)
lu = LearningUnitFactory(title='Reisen', parent=circle)
LearningUnitQuestionFactory(
title='Passende Frage zu "Reisen"',
parent=lu
)
LearningContentFactory(
title='Reiseversicherung',
parent=circe_analyse,
parent=circle,
minutes=240,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Sorgenfrei reisen',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('exercise', ExerciseBlockFactory())]
)
lu = LearningUnitFactory(title='Haushalt', parent=circe_analyse)
lu = LearningUnitFactory(title='Haushalt', parent=circle)
LearningUnitQuestionFactory(
title='Passende Frage zu "Haushalt"',
parent=lu
)
LearningContentFactory(
title='Privathaftpflicht',
parent=circe_analyse,
parent=circle,
minutes=240,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Zusatzversicherung',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('document', DocumentBlockFactory())]
)
LearningContentFactory(
title='Einen eigenen Haushalt führen',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('exercise', ExerciseBlockFactory())]
)
LearningSequenceFactory(title='Üben', parent=circe_analyse, icon='it-icon-ls-practice')
lu = LearningUnitFactory(title='Kind zieht von zu Hause aus', parent=circe_analyse)
LearningSequenceFactory(title='Üben', parent=circle, icon='it-icon-ls-practice')
lu = LearningUnitFactory(title='Kind zieht von zu Hause aus', parent=circle)
LearningUnitQuestionFactory(
title='Passende Frage zu "Kind zieht von zu Hause aus"',
parent=lu
)
LearningContentFactory(
title='Hausrat',
parent=circe_analyse,
parent=circle,
minutes=120,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Privathaftpflicht',
parent=circe_analyse,
parent=circle,
minutes=60,
contents=[('competence', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Kind zieht von zu Hause wirklich aus',
parent=circe_analyse,
parent=circle,
minutes=60,
contents=[('competence', CompetenceBlockFactory())]
)
LearningSequenceFactory(title='Testen', parent=circe_analyse, icon='it-icon-ls-test')
lu = LearningUnitFactory(title='Kind zieht von zu Hause aus "Testen"', parent=circe_analyse)
LearningSequenceFactory(title='Testen', parent=circle, icon='it-icon-ls-test')
lu = LearningUnitFactory(title='Kind zieht von zu Hause aus "Testen"', parent=circle)
LearningContentFactory(
title='Das erwartet dich im Test',
parent=circe_analyse,
parent=circle,
minutes=30,
contents=[('document', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Test durchführen',
parent=circe_analyse,
parent=circle,
minutes=30,
contents=[('document', CompetenceBlockFactory())]
)
LearningSequenceFactory(title='Vernetzen', parent=circe_analyse, icon='it-icon-ls-network')
LearningSequenceFactory(title='Vernetzen', parent=circle, icon='it-icon-ls-network')
LearningContentFactory(
title='Online Training',
parent=circe_analyse,
parent=circle,
minutes=60,
contents=[('document', CompetenceBlockFactory())]
)
LearningSequenceFactory(title='Beenden', parent=circe_analyse, icon='it-icon-ls-end')
LearningSequenceFactory(title='Beenden', parent=circle, icon='it-icon-ls-end')
LearningContentFactory(
title='Kompetenzprofil anschauen',
parent=circe_analyse,
parent=circle,
minutes=30,
contents=[('document', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Circle "Analyse" abschliessen',
parent=circe_analyse,
parent=circle,
minutes=30,
contents=[('document', CompetenceBlockFactory())]
)
# learning_unit = LearningUnitFactory.create(title='** Einstieg Video"', parent=circle_4)
# video_url = "https://www.vbv.ch/fileadmin/vbv/Videos/Statements_Externe/Janos_M/Testimonial_Janos_Mischler_PositiveEffekte.mp4"
# video_title = "Ausbildung ist pflicht"
# video_description = "Erfahren Sie, was für Janos Mischler die positiven Aspekte von ständiger Weiterbildung sind aus fachlicher und aus persönlicher Sicht."
# video_block = VideoBlockFactory(content_type="video", url=video_url, title=video_title, description=video_description)
# learning_unit.contents.append(('video', video_block))
# learning_unit.save()
#
# learning_unit = LearningUnitFactory.create(title='** Web Based Training"', parent=circle_4)
# wbt_url = "web_based_trainings/rise_cmi5_test_export/scormcontent/index.html"
# wbt_block = WebBasedTrainingBlockFactory(content_type="web_based_training", url=wbt_url)
# learning_unit.contents.append(('web_based_training', wbt_block))
# learning_unit.save()
# learning_unit = LearningUnitFactory.create(title="Selbsteinschätzung", parent=circle_4)
#
# sequence_2 = LearningSequenceFactory.create(title="Beobachten", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Mein Motorfahrzeug kaufen", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Sich selbständig machen", parent=circle_4)
#
# sequence_3 = LearningSequenceFactory.create(title="Anwenden", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Nora kauft sich ein neues Auto", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Manuel träumt von einem neuen Tesla", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Deine Erkenntnisse und Learnings", parent=circle_4)
#
# sequence_4 = LearningSequenceFactory.create(title="Üben", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Ermittlung des Kundenbedarfs", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Aktives Zuhören", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="In Bildern Sprechen", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Priorisieren des Bedarfs", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Zusammenfassung des Bedarfs", parent=circle_4)
#
# sequence_5 = LearningSequenceFactory.create(title="Testen", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Bedarfsfragen", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Andwendung der Fragetechniken", parent=circle_4)
#
# sequence_5 = LearningSequenceFactory.create(title="Vernetzen", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Online Training", parent=circle_4)
#
# sequence_6 = LearningSequenceFactory.create(title="Beenden", parent=circle_4)
# learning_unit = LearningUnitFactory.create(title="Selbsteinschätzung", parent=circle_4)
#
# circle_5 = CircleFactory.create(title="Lösung",
# parent=lp,
# topic=tp,
# goals="""— Die Daten des Kunden korrekt in die notwendigen Systeme einzutragen
# — Fachspezialisten beizuziehen, falls dies angezeigt ist
# — Mit den zur Verfügung stehenden Systemen korrekte Lösungsvorschläge
# (z.B. Offerten oder Ausschreibungen) zu verfassen
# — Falls nötig die Lösungsvorschläge dem Underwriting weiterzuleiten und
# Unklarheiten zu bereinigen """)
#
# circle_6 = CircleFactory.create(title="Abschluss",
# parent=lp,
# topic=tp,
# goals="""— Je nach Komplexität der Lösungsvorschläge (z.B. Offerten oder Offertvergleich) einen Fachspezialisten aufzubieten
# — Sich kundenorientiert auf das Gespräch vorzubereiten und sich passend zu präsentieren""")
#
# tp = TopicFactory.create(title="Betreuen und Ausbauen des Kundenstamms", learning_path=lp)
# circle_7 = CircleFactory.create(title="Betreuen", parent=lp, topic=tp)
#
# tp = TopicFactory.create(title="Prüfung", is_visible=False, learning_path=lp)
# circle_7 = CircleFactory.create(title="Prüfungsvorbereitung", parent=lp, topic=tp)
def create_default_learning_path(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()
# create_default_competences()
lp = LearningPathFactory(title="Versicherungsvermittler/in", parent=site.root_page)
TopicFactory(title="Basis", is_visible=False, parent=lp)
circle_basis = CircleFactory(
title="Basis",
parent=lp,
description="""
In diesem Circle erklären wir dir, wie der Lehrgang
Versicherungsvermittler / in " aufgebaut ist. Zudem vermitteln wir dir die wichtigsten Grundlagen,
damit erfolgreich mit deinem Lernpfad starten kannst.
""",
)
LearningSequenceFactory(title='Starten', parent=circle_basis, icon='it-icon-ls-start')
LearningContentFactory(
title='Einleitung Circle "Basis"',
parent=circle_basis,
minutes=15,
contents=[('video', VideoBlockFactory(
url='https://www.youtube.com/embed/qhPIfxS2hvI',
description='In dieser Circle zeigt dir ein Fachexperte anhand von Kundensituationen, wie du erfolgreich'
'den Kundenbedarf ermitteln, analysieren, priorisieren und anschliessend zusammenfassen kannst.'
))]
)
LearningSequenceFactory(title='Beenden', parent=circle_basis, icon='it-icon-ls-end')
LearningContentFactory(
title='Kompetenzprofil anschauen',
parent=circle_basis,
minutes=30,
contents=[('document', CompetenceBlockFactory())]
)
LearningContentFactory(
title='Circle "Analyse" abschliessen',
parent=circle_basis,
minutes=30,
contents=[('document', CompetenceBlockFactory())]
)
TopicFactory(title="Gewinnen von Kunden", parent=lp)
circle_gewinnen = CircleFactory(
title="Gewinnen",
parent=lp,
description="""
Versicherungsvermittlerinnen und -vermittler verfügen über
ein starkes Netzwerk, das sie gezielt pflegen und ausbauen. Sie beraten und betreuen ihre bestehenden Kundinnen und Kunden professionell und gewinnen so ihr Vertrauen. Dadurch schaffen sie die Basis für das Gewinnen
von neuen Kundinnen und Kunden. Versicherungsvermittlerinnen und -vermittler sprechen ihre bestehenden Kundinnen
und Kunden auf Weiterempfehlung an. So nutzen sie ihre
bestehenden Kontakte geschickt für das Anwerben von
Neukundinnen und -kunden.""",
goals=[
('goal', '... Bestehende Kunden so zu beraten, dass sie von diesen weiterempfohlen werden'),
('goal', '... Geeignete Personen wie z.B. Garagisten, Architekten, Treuhänder auf die Vermittlung / Zusammenarbeit anzusprechen'),
('goal', '... Verschiedene Datenquellen wie Internet, Telefonbuch, Handelszeitung, Baugesuche etc. Gezielt für die Gewinnung von Neukunden zu benützen'),
('goal', '... Ein beliebiges Gespräch resp. Einen bestehenden Kontakt in die Richtung «Versicherung» zu lenken'),
('goal', '... Das Thema Risiko und Sicherheit in einem Gespräch gezielt und auf die Situation des jeweiligen Gesprächspartners bezogen einfliessen zu lassen'),
('goal', '... Im täglichen Kontakt potenzielle Kundinnen und Kunden zu erkennen'),
],
)
create_circle_children(circle_gewinnen, 'Gewinnen')
TopicFactory(title="Beraten der Kunden", parent=lp)
circle_einstieg = create_circle('Einstieg', lp)
create_circle_children(circle_einstieg, 'Einstieg')
circle_analyse = create_circle('Analyse', lp)
create_circle_children(circle_analyse, 'Analyse')
circle_analyse = create_circle('Lösung', lp)
create_circle_children(circle_analyse, 'Lösung')
circle_analyse = create_circle('Abschluss', lp)
create_circle_children(circle_analyse, 'Abschluss')
TopicFactory(title="Betreuen und Ausbauen des Kundenstamms", parent=lp)
circle_analyse = create_circle('Betreueun', lp)
create_circle_children(circle_analyse, 'Betreueun')
TopicFactory(title="Prüfungsvorbereitung", is_visible=False, parent=lp)
circle_analyse = create_circle('Prüfungsvorbereitung', lp)
create_circle_children(circle_analyse, 'Prüfungsvorbereitung')
# locales
if not skip_locales: