diff --git a/client/src/components/circle/LearningContent.vue b/client/src/components/circle/LearningContent.vue index d0bce5e5..6e950076 100644 --- a/client/src/components/circle/LearningContent.vue +++ b/client/src/components/circle/LearningContent.vue @@ -52,10 +52,11 @@ const block = computed(() => { width="100%" height="100%" scrolling="no" - src="/media/web_based_trainings/rise_cmi5_test_export/scormcontent/index.html" + :src="block.value.url" /> +
{{ block.value.description }}
@@ -84,12 +85,12 @@ const block = computed(() => { diff --git a/server/vbv_lernwelt/learnpath/migrations/0002_alter_learningcontent_contents.py b/server/vbv_lernwelt/learnpath/migrations/0002_alter_learningcontent_contents.py new file mode 100644 index 00000000..2e13c5ab --- /dev/null +++ b/server/vbv_lernwelt/learnpath/migrations/0002_alter_learningcontent_contents.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.13 on 2022-08-24 14:47 + +from django.db import migrations +import wagtail.blocks +import wagtail.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('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())])), ('web_based_training', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('podcast', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('competence', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock())])), ('exercise', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock()), ('url', wagtail.blocks.URLBlock())])), ('document', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock())])), ('knowledge', wagtail.blocks.StructBlock([('description', wagtail.blocks.TextBlock())]))], use_json_field=None), + ), + ] diff --git a/server/vbv_lernwelt/learnpath/models_learning_unit_content.py b/server/vbv_lernwelt/learnpath/models_learning_unit_content.py index 62825fe4..b8cc792d 100644 --- a/server/vbv_lernwelt/learnpath/models_learning_unit_content.py +++ b/server/vbv_lernwelt/learnpath/models_learning_unit_content.py @@ -35,6 +35,8 @@ class CompetenceBlock(blocks.StructBlock): class ExerciseBlock(blocks.StructBlock): description = blocks.TextBlock() + url = blocks.URLBlock() + class Meta: icon = 'media' @@ -47,6 +49,7 @@ class DocumentBlock(blocks.StructBlock): icon = 'media' + class KnowledgeBlock(blocks.StructBlock): description = blocks.TextBlock() diff --git a/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py b/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py index 83dec7ba..ed732681 100644 --- a/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py +++ b/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py @@ -9,7 +9,8 @@ from vbv_lernwelt.learnpath.models import LearningPath, Topic, Circle, LearningS LearningUnitQuestion from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory, TopicFactory, CircleFactory, \ LearningSequenceFactory, LearningContentFactory, VideoBlockFactory, PodcastBlockFactory, CompetenceBlockFactory, \ - ExerciseBlockFactory, DocumentBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory + ExerciseBlockFactory, DocumentBlockFactory, LearningUnitFactory, LearningUnitQuestionFactory, \ + WebBasedTrainingBlockFactory def create_circle(title, learning_path): @@ -78,17 +79,32 @@ def create_circle_children(circle, title): url='https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/325190984&color=%23ff5500&auto_play=false&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true&visual=true', ))] ) + if circle.title == 'Einstieg': + LearningContentFactory( + title='Einstieg ins Gespräch', + parent=circle, + minutes=15, + 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.' + ))] + ) + LearningContentFactory( title='Kundenbedürfnisse erkennen', parent=circle, minutes=30, contents=[('competence', CompetenceBlockFactory())] ) + LearningContentFactory( title='Was braucht eine Familie?', parent=circle, minutes=60, - contents=[('exercise', ExerciseBlockFactory())] + contents=[('exercise', ExerciseBlockFactory(url='/media/web_based_trainings/story-01-a-01-patrizia-marco-sichern-sich-ab-einstieg/scormcontent/index.html' + ))] + ) LearningSequenceFactory(title='Anwenden', parent=circle, icon='it-icon-ls-apply') @@ -155,7 +171,7 @@ def create_circle_children(circle, title): title='Motorfahrzeug kaufen', parent=circle, minutes=120, - contents=[('exercise', ExerciseBlockFactory())] + contents=[('exercise', ExerciseBlockFactory(url='/media/web_based_trainings/training-04-a-01-rafael-fasel-wechselt-sein-auto-einstieg/scormcontent/index.html'))] ) lu = LearningUnitFactory(title='Pensionierung', parent=circle) @@ -203,7 +219,8 @@ def create_circle_children(circle, title): title='Sorgenfrei reisen', parent=circle, minutes=120, - contents=[('exercise', ExerciseBlockFactory())] + contents=[('exercise', ExerciseBlockFactory( + url='/media/web_based_trainings/story-06-a-01-emma-und-ayla-campen-durch-amerika-einstieg/scormcontent/index.html'))] ) lu = LearningUnitFactory(title='Haushalt', parent=circle) @@ -306,7 +323,6 @@ def create_default_learning_path(user=None, skip_locales=True): site.port = 8000 site.save() - # create_default_competences() lp = LearningPathFactory(title="Versicherungsvermittler/in", parent=site.root_page) @@ -347,7 +363,6 @@ damit erfolgreich mit deinem Lernpfad starten kannst. contents=[('document', CompetenceBlockFactory())] ) - TopicFactory(title="Gewinnen von Kunden", parent=lp) circle_gewinnen = CircleFactory( @@ -362,10 +377,14 @@ 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', + '... 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'), ], ) @@ -394,7 +413,6 @@ Neukundinnen und -kunden.""", circle_analyse = create_circle('Prüfungs- vorbereitung', lp) create_circle_children(circle_analyse, 'Prüfungs- vorbereitung') - # locales if not skip_locales: locale_de = Locale.objects.get(language_code='de-CH') diff --git a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py index 16848614..f3e004ab 100644 --- a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py +++ b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py @@ -89,6 +89,7 @@ class CompetenceBlockFactory(wagtail_factories.StructBlockFactory): class ExerciseBlockFactory(wagtail_factories.StructBlockFactory): description = "Beispiel Aufgabe" + url= "/media/web_based_trainings/rise_cmi5_test_export/scormcontent/index.html" class Meta: model = ExerciseBlock