From 647631491da73bb844949d7a0eea38c64af1a8a2 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Tue, 4 Oct 2022 17:35:56 +0200 Subject: [PATCH] Add Performance Criteria for oktober demo --- .../create_default_competence_profile.py | 178 ++++++++++++++++++ .../learnpath/create_default_learning_path.py | 23 ++- .../0002_alter_learningcontent_contents.py | 104 +++++++++- server/vbv_lernwelt/learnpath/models.py | 2 +- .../tests/learning_path_factories.py | 2 +- 5 files changed, 300 insertions(+), 9 deletions(-) diff --git a/server/vbv_lernwelt/competence/create_default_competence_profile.py b/server/vbv_lernwelt/competence/create_default_competence_profile.py index feb410dc..e72c96f9 100644 --- a/server/vbv_lernwelt/competence/create_default_competence_profile.py +++ b/server/vbv_lernwelt/competence/create_default_competence_profile.py @@ -130,6 +130,184 @@ def create_default_competence_profile(): items=[("item", i) for i in c["items"]], ) + # Daten anhand von WEVM_Version Oktober 2022 + # Einstieg/Beobachten – Selbsteinschätzung «Einkommenssicherung» + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.1", + title="Ich bin fähig je nach (Neu-) Kunde Form und Ort für das Gespräch festzulegen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.2", + title="Ich bin fähig mir intern und extern die nötigen Informationen über den (Neu-) Kunden zu beschaffen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.3", + title="Ich bin fähig die Terminierung auf das Thema Einkommenssicherung auszurichten.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.4", + title="Ich bin fähig für das zu führende Gespräch eine Agenda zu erstellen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.5", + title="Ich bin fähig für das Handlungsfeld «Einkommenssicherung» geeignete Hilfsmittel und Unterlagen zusammenzustellen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="B1"), + competence_id="B1.1", + title="Ich bin fähig dem Kunden den Gesprächsablauf und den Zeitrahmen (mittels Agenda) aufzuzeigen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="B1"), + competence_id="B1.2", + title="Ich bin fähig mich beim Kunden korrekt zu identifizieren (VAG 45).", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="B2"), + competence_id="B2.3", + title="Ich bin fähig alle erforderlichen Unterlagen einzufordern.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-einkommenssicherung" + ), + ) + + # Einstieg / Anwenden – Selbsteinschätzung «Fahrzeug» + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A1"), + competence_id="A1.6", + title="Ich bin fähig im täglichen Kontakt potenzielle Kundinnen und Kunden zu erkennen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-fahrzeug" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.1", + title="Ich bin fähig je nach (Neu-) Kunde Form und Ort für das Gespräch festzulegen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-fahrzeug" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.2", + title="Ich bin fähig mir intern und extern die nötigen Informationen über den (Neu-) Kunden zu beschaffen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-fahrzeug" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.3", + title="Ich bin fähig die Terminierung auf das Thema Fahrzeug auszurichten.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-fahrzeug" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.4", + title="Ich bin fähig für das zu führende Gespräch eine Agenda zu erstellen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-fahrzeug" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.5", + title="Ich bin fähig für das zu führende Gespräch geeignete Hilfsmittel und Unterlagen zusammenzustellen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-fahrzeug" + ), + ) + + # Einstieg / Anwenden – Selbsteinschätzung «Reisen» + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.3", + title="Ich bin fähig die Terminierung auf das Thema Reisen auszurichten.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-reisen" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.4", + title="Ich bin fähig für das zu führende Gespräch eine Agenda zu erstellen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-reisen" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A2"), + competence_id="A2.5", + title="Ich bin fähig für das zu führende Gespräch geeignete Hilfsmittel und Unterlagen zusammenzustellen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-einstieg-lu-reisen" + ), + ) + + # Analyse / Beobachten – Selbsteinschätzung «Einkommenssicherung» + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="A1"), + competence_id="A1.5", + title="Innerhalb des Handlungsfelds «Einkommenssicherung» bin ich fähig, das Thema Risiko und Sicherheit in einem Gespräch gezielt und auf die Situation des jeweiligen Gesprächspartners bezogen, einfliessen zu lassen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-analyse-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="B1"), + competence_id="B1.3", + title="Innerhalb des Handlungsfelds «Einkommenssicherung» bin ich fähig, die Ziele und Pläne des Kunden zu ergründen (SOLL).", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-analyse-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="B2"), + competence_id="B2.1", + title="Innerhalb des Handlungsfelds «Einkommenssicherung» bin ich fähig, die IST-Situation des Kunden mit der geeigneten Gesprächs-/Fragetechnik zu erfassen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-analyse-lu-einkommenssicherung" + ), + ) + PerformanceCriteriaFactory( + parent=CompetencePage.objects.get(competence_id="B2"), + competence_id="B2.2", + title="Innerhalb des Handlungsfelds «Einkommenssicherung» bin ich fähig, die Risiken aufzuzeigen.", + learning_unit=LearningUnit.objects.get( + slug="versicherungsvermittlerin-lp-circle-analyse-lu-einkommenssicherung" + ), + ) + + # Analyse/Anwenden – Selbsteinschätzung «Fahrzeug» PerformanceCriteriaFactory( parent=CompetencePage.objects.get(competence_id="B1"), competence_id="B1.3", diff --git a/server/vbv_lernwelt/learnpath/create_default_learning_path.py b/server/vbv_lernwelt/learnpath/create_default_learning_path.py index fbaf9e20..28619886 100644 --- a/server/vbv_lernwelt/learnpath/create_default_learning_path.py +++ b/server/vbv_lernwelt/learnpath/create_default_learning_path.py @@ -45,7 +45,7 @@ def create_circle_children(circle, title): 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.", + "den Kundenbedarf ermitteln, analysieren, priorisieren und anschliessend zusammenfassen kannst.", ), ) ], @@ -84,7 +84,7 @@ def create_circle_children(circle, title): VideoBlockFactory( url="https://onedrive.live.com/embed?cid=26E4A934B79DCE5E&resid=26E4A934B79DCE5E%2153350&authkey=AId6i7z_X8l2fHw", description="In dieser Circle zeigt dir ein Fachexperte anhand von Kundensituationen, wie du erfolgreich" - "den Kundenbedarf ermitteln, analysieren, priorisieren und anschliessend zusammenfassen kannst.", + "den Kundenbedarf ermitteln, analysieren, priorisieren und anschliessend zusammenfassen kannst.", ), ) ], @@ -592,6 +592,16 @@ def create_circle_einstieg(lp): LearningContentFactory( title="Verschaff dir einen Überblick", parent=circle, + contents=[ + ( + "video", + VideoBlockFactory( + url="https://onedrive.live.com/embed?cid=26E4A934B79DCE5E&resid=26E4A934B79DCE5E%2153350&authkey=AId6i7z_X8l2fHw", + 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="Beobachten", parent=circle, icon="it-icon-ls-watch") @@ -662,6 +672,15 @@ def create_circle_analyse(lp): LearningContentFactory( title="Verschaff dir einen Überblick", parent=circle, + contents=[ + ( + "video", + VideoBlockFactory( + url="https://onedrive.live.com/embed?cid=26E4A934B79DCE5E&resid=26E4A934B79DCE5E%2153352&authkey=ABAdnARrD5VsIG8", + description="", + ), + ) + ], ) LearningSequenceFactory(title="Beobachten", parent=circle, icon="it-icon-ls-watch") diff --git a/server/vbv_lernwelt/learnpath/migrations/0002_alter_learningcontent_contents.py b/server/vbv_lernwelt/learnpath/migrations/0002_alter_learningcontent_contents.py index 365bcf45..39521cad 100644 --- a/server/vbv_lernwelt/learnpath/migrations/0002_alter_learningcontent_contents.py +++ b/server/vbv_lernwelt/learnpath/migrations/0002_alter_learningcontent_contents.py @@ -1,20 +1,114 @@ # Generated by Django 3.2.13 on 2022-10-04 13:34 -from django.db import migrations import wagtail.blocks import wagtail.fields +from django.db import migrations class Migration(migrations.Migration): dependencies = [ - ('learnpath', '0001_initial'), + ("learnpath", "0001_initial"), ] operations = [ migrations.AlterField( - model_name='learningcontent', - name='contents', - field=wagtail.fields.StreamField([('video', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('resource', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('exercise', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('online_training', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('media_library', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('document', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('test', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('book', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('assignment', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('placeholder', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())]))], use_json_field=None), + model_name="learningcontent", + name="contents", + field=wagtail.fields.StreamField( + [ + ( + "video", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "resource", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "exercise", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "online_training", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "media_library", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "document", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "test", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "book", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "assignment", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ( + "placeholder", + wagtail.blocks.StructBlock( + [ + ("description", wagtail.blocks.TextBlock()), + ("url", wagtail.blocks.URLBlock()), + ] + ), + ), + ], + use_json_field=None, + ), ), ] diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py index bcf509a4..c57799c5 100644 --- a/server/vbv_lernwelt/learnpath/models.py +++ b/server/vbv_lernwelt/learnpath/models.py @@ -16,10 +16,10 @@ from vbv_lernwelt.learnpath.models_learning_unit_content import ( ExerciseBlock, MediaLibraryBlock, OnlineTrainingBlock, + PlaceholderBlock, ResourceBlock, TestBlock, VideoBlock, - PlaceholderBlock, ) from vbv_lernwelt.learnpath.serializer_helpers import get_it_serializer_class diff --git a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py index ddbb6867..fe6068fe 100644 --- a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py +++ b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py @@ -15,10 +15,10 @@ from vbv_lernwelt.learnpath.models_learning_unit_content import ( ExerciseBlock, MediaLibraryBlock, OnlineTrainingBlock, + PlaceholderBlock, ResourceBlock, TestBlock, VideoBlock, - PlaceholderBlock, )