Add exercise url as wbt

This commit is contained in:
Lorenz Padberg 2022-08-24 17:04:36 +02:00
parent a319432686
commit ec479235f7
5 changed files with 61 additions and 18 deletions

View File

@ -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"
/>
</div>
<div v-else class="mx-auto max-w-5xl px-4 lg:px-8 py-4">
<p>{{ block.value.description }}</p>

View File

@ -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),
),
]

View File

@ -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()

View File

@ -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')

View File

@ -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