diff --git a/server/vbv_lernwelt/learnpath/migrations/0001_initial.py b/server/vbv_lernwelt/learnpath/migrations/0001_initial.py index feb259fa..e16881cf 100644 --- a/server/vbv_lernwelt/learnpath/migrations/0001_initial.py +++ b/server/vbv_lernwelt/learnpath/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.12 on 2022-06-01 15:39 +# Generated by Django 3.2.12 on 2022-06-03 13:11 from django.db import migrations, models import django.db.models.deletion @@ -52,6 +52,7 @@ class Migration(migrations.Migration): name='LearningSequence', fields=[ ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), + ('icon', models.CharField(default='IconLsStart', max_length=255)), ], options={ 'verbose_name': 'Learning Sequence', @@ -62,7 +63,9 @@ class Migration(migrations.Migration): name='LearningUnit', fields=[ ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')), - ('contents', wagtail.core.fields.StreamField([('web_based_training', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())])), ('video', wagtail.core.blocks.StructBlock([('url', wagtail.core.blocks.URLBlock())]))], blank=True, null=True)), + ('minutes', models.PositiveIntegerField(default=15)), + ('package', models.CharField(blank=True, default='', max_length=255)), + ('contents', wagtail.core.fields.StreamField([('video', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('rise_training', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('podcast', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock()), ('url', wagtail.core.blocks.URLBlock())])), ('competence', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock())])), ('exercise', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock())])), ('self_evaluation', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock())])), ('document', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock())])), ('knowledge', wagtail.core.blocks.StructBlock([('description', wagtail.core.blocks.TextBlock())]))])), ], options={ 'verbose_name': 'Learning Unit', diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py index 0966d75d..326e6ebc 100644 --- a/server/vbv_lernwelt/learnpath/models.py +++ b/server/vbv_lernwelt/learnpath/models.py @@ -8,7 +8,8 @@ from wagtail.core.fields import StreamField from wagtail.core.models import Page, Orderable from vbv_lernwelt.learnpath.models_competences import * -from vbv_lernwelt.learnpath.models_learning_unit_content import WebBasedTrainingBlock, VideoBlock +from vbv_lernwelt.learnpath.models_learning_unit_content import RiseTrainingBlock, VideoBlock, PodcastBlock, \ + CompetenceBlock, ExerciseBlock, SelfEvaluationBlock, DocumentBlock, KnowledgeBlock from vbv_lernwelt.learnpath.serializer_helpers import get_it_serializer_class @@ -106,9 +107,14 @@ class Circle(Page): class LearningSequence(Page): + icon = models.CharField(max_length=255, default="IconLsStart") + parent_page_types = ['learnpath.Circle'] - panels = [FieldPanel('title'), FieldPanel('circle')] + panels = [ + FieldPanel('title'), + FieldPanel('icon'), + ] class Meta: verbose_name = "Learning Sequence" @@ -118,10 +124,10 @@ class LearningSequence(Page): @classmethod def get_serializer_class(cls): - return get_it_serializer_class(cls, field_names=['id', 'title', 'slug', 'type', 'translation_key']) + return get_it_serializer_class(cls, field_names=['id', 'title', 'icon', 'slug', 'type', 'translation_key']) def get_admin_display_title(self): - return f'Lernsequenz: {self.draft_title}' + return f'{self.icon} {self.draft_title}' def full_clean(self, *args, **kwargs): super(LearningSequence, self).full_clean(*args, **kwargs) @@ -135,29 +141,42 @@ class LearningUnit(Page): # TODO: Review model architecture, is the stream field the right thing here? parent_page_types = ['learnpath.Circle'] subpage_types = [] + minutes = models.PositiveIntegerField(default=15) + package = models.CharField(max_length=255, default="", blank=True) content_blocks = [ - ('web_based_training', WebBasedTrainingBlock()), ('video', VideoBlock()), + ('rise_training', RiseTrainingBlock()), + ('podcast', PodcastBlock()), + ('competence', CompetenceBlock()), + ('exercise', ExerciseBlock()), + ('self_evaluation', SelfEvaluationBlock()), + ('document', DocumentBlock()), + ('knowledge', KnowledgeBlock()), ] contents = StreamField( - StreamBlock(content_blocks), null=True, blank=True, min_num=1, max_num=1 + StreamBlock(content_blocks), blank=False, min_num=1, max_num=1 ) content_panels = [ FieldPanel('title', classname="full title"), - # FieldPanel('learning_sequence'), + FieldPanel('minutes'), StreamFieldPanel('contents'), ] - api_fields = [ - APIField('title'), - APIField('contents'), - ] - def get_admin_display_title(self): - return f'FOOBAR {self.draft_title}' + display_title = '' + + if self.package: + display_title += f'{self.package}: ' + + if len(self.contents) > 0: + display_title += f'{self.contents[0].block_type.capitalize()}: ' + + display_title += self.draft_title + + return display_title class Meta: verbose_name = "Learning Unit" @@ -168,7 +187,7 @@ class LearningUnit(Page): @classmethod def get_serializer_class(cls): - return get_it_serializer_class(cls, field_names=['id', 'title', 'contents', 'slug', 'type', 'translation_key']) + return get_it_serializer_class(cls, field_names=['id', 'title', 'minutes', 'package', 'contents', 'slug', 'type', 'translation_key']) def __str__(self): return f"{self.title}" diff --git a/server/vbv_lernwelt/learnpath/models_learning_unit_content.py b/server/vbv_lernwelt/learnpath/models_learning_unit_content.py index b818db6d..5b29f647 100644 --- a/server/vbv_lernwelt/learnpath/models_learning_unit_content.py +++ b/server/vbv_lernwelt/learnpath/models_learning_unit_content.py @@ -1,31 +1,61 @@ -from django.db import models from wagtail.core import blocks class VideoBlock(blocks.StructBlock): # TODO: Possible video Types for the user, upload file, add URL - title = models.CharField(max_length=255, default="") - description = models.TextField(default="") + description = blocks.TextBlock() url = blocks.URLBlock() class Meta: icon = 'media' -RISE = 'rise' - -CONTENT_TYPE_CHOICES = ( - (RISE, 'Rise'), -) - - -class WebBasedTrainingBlock(blocks.StructBlock): +class RiseTrainingBlock(blocks.StructBlock): + description = blocks.TextBlock() url = blocks.URLBlock() - content_type = models.CharField( - max_length=255, - choices=CONTENT_TYPE_CHOICES, - default=RISE - ) + + class Meta: + icon = 'media' + + +class PodcastBlock(blocks.StructBlock): + description = blocks.TextBlock() + url = blocks.URLBlock() + + class Meta: + icon = 'media' + + +class CompetenceBlock(blocks.StructBlock): + description = blocks.TextBlock() + + class Meta: + icon = 'media' + + +class ExerciseBlock(blocks.StructBlock): + description = blocks.TextBlock() + + class Meta: + icon = 'media' + + +class SelfEvaluationBlock(blocks.StructBlock): + description = blocks.TextBlock() + + class Meta: + icon = 'media' + + +class DocumentBlock(blocks.StructBlock): + description = blocks.TextBlock() + + class Meta: + icon = 'media' + + +class KnowledgeBlock(blocks.StructBlock): + description = blocks.TextBlock() class Meta: icon = 'media' 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 c6c1c6cc..e1a36f1a 100644 --- a/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py +++ b/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py @@ -5,7 +5,8 @@ from wagtail.core.models import Site, Page from vbv_lernwelt.core.admin import User from vbv_lernwelt.learnpath.models import LearningPath, Topic, Circle, LearningSequence, LearningUnit from vbv_lernwelt.learnpath.tests.learning_path_factories import LearningPathFactory, TopicFactory, CircleFactory, \ - LearningSequenceFactory, LearningUnitFactory, VideoBlockFactory, WebBasedTrainingBlockFactory + LearningSequenceFactory, LearningUnitFactory, VideoBlockFactory, PodcastBlockFactory, CompetenceBlockFactory, \ + ExerciseBlockFactory, SelfEvaluationBlockFactory, DocumentBlockFactory def create_default_learning_path(user=None): @@ -53,7 +54,8 @@ von Neukunden zu benützen tp = TopicFactory(title="Beraten der Kunden", learning_path=lp) circle_3 = CircleFactory(title="Einstieg", parent=lp, topic=tp) - circle_4 = CircleFactory(title="Analyse", parent=lp, topic=tp, + + circe_analyse = CircleFactory(title="Analyse", parent=lp, topic=tp, 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 @@ -66,71 +68,217 @@ von Neukunden zu benützen — Lösungsvorschläge zu skizzieren und zu visualisieren""") - sequence_1 = LearningSequenceFactory(title="Starten", parent=circle_4) + LearningSequenceFactory(title='Starten', parent=circe_analyse) + LearningUnitFactory( + title='Einleitung Circle "Anlayse"', + parent=circe_analyse, + minutes=15, + contents=[('video', VideoBlockFactory())] + ) - learning_unit = LearningUnitFactory(title='Einleitung Circle "Anlayse"', parent=circle_4) - 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() + LearningSequenceFactory(title='Beobachten', parent=circe_analyse, icon='IconLsWatch') + LearningUnitFactory( + title='Ermittlung des Kundenbedarfs', + parent=circe_analyse, + package='Absicherung der Familie', + minutes=30, + contents=[('podcast', PodcastBlockFactory())] + ) + LearningUnitFactory( + title='Kundenbedürfnisse erkennen', + parent=circe_analyse, + package='Absicherung der Familie', + minutes=30, + contents=[('competence', CompetenceBlockFactory())] + ) + LearningUnitFactory( + title='Was braucht eine Familie?', + parent=circe_analyse, + package='Absicherung der Familie', + minutes=60, + contents=[('exercise', ExerciseBlockFactory())] + ) + LearningUnitFactory( + title='Selbsteinschätzung', + parent=circe_analyse, + package='Absicherung der Familie', + minutes=0, + contents=[('self_evaluation', SelfEvaluationBlockFactory())] + ) - 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) + LearningSequenceFactory(title='Anwenden', parent=circe_analyse, icon='IconLsApply') + LearningUnitFactory( + title='Versicherungsbedarf für Familien', + parent=circe_analyse, + package='Prämien einsparen', + minutes=60, + contents=[('exercise', ExerciseBlockFactory())] + ) + LearningUnitFactory( + title='Alles klar?', + parent=circe_analyse, + package='Prämien einsparen', + minutes=60, + contents=[('exercise', ExerciseBlockFactory())] + ) + LearningUnitFactory( + title='Selbsteinschätzung', + parent=circe_analyse, + package='Prämien einsparen', + minutes=0, + contents=[('self_evaluation', SelfEvaluationBlockFactory())] + ) - 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) + LearningUnitFactory( + title='GmbH oder AG', + parent=circe_analyse, + package='Sich selbständig machen', + minutes=120, + contents=[('video', VideoBlockFactory())] + ) + LearningUnitFactory( + title='Tiertherapie Patrizia Feller', + parent=circe_analyse, + package='Sich selbständig machen', + minutes=120, + contents=[('exercise', ExerciseBlockFactory())] + ) + LearningUnitFactory( + title='Selbsteinschätzung', + parent=circe_analyse, + package='Sich selbständig machen', + minutes=0, + contents=[('self_evaluation', SelfEvaluationBlockFactory())] + ) - 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) + LearningUnitFactory( + title='Motorfahrzeugversicherung', + parent=circe_analyse, + package='Auto verkaufen', + minutes=240, + contents=[('competence', CompetenceBlockFactory())] + ) + LearningUnitFactory( + title='Nora kauft sich ein neues Auto', + parent=circe_analyse, + package='Auto verkaufen', + minutes=60, + contents=[('podcast', PodcastBlockFactory())] + ) + LearningUnitFactory( + title='Ermittlung des Kundenbedarfs', + parent=circe_analyse, + package='Auto verkaufen', + minutes=120, + contents=[('document', DocumentBlockFactory())] + ) + LearningUnitFactory( + title='Motorfahrzeug kaufen', + parent=circe_analyse, + package='Auto verkaufen', + minutes=120, + contents=[('exercise', ExerciseBlockFactory())] + ) + LearningUnitFactory( + title='Selbsteinschätzung', + parent=circe_analyse, + package='Auto verkaufen', + minutes=0, + contents=[('self_evaluation', SelfEvaluationBlockFactory())] + ) - 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) + LearningSequenceFactory(title='Üben', parent=circe_analyse, icon='IconLsPractice') + LearningUnitFactory( + title='Hausrat', + parent=circe_analyse, + package='Kind zieht von zu Hause aus', + minutes=120, + contents=[('competence', CompetenceBlockFactory())] + ) + LearningUnitFactory( + title='Privathaftpflicht', + parent=circe_analyse, + package='Kind zieht von zu Hause aus', + minutes=60, + contents=[('competence', CompetenceBlockFactory())] + ) + LearningUnitFactory( + title='Kind zieht von zu Hause aus', + parent=circe_analyse, + package='Kind zieht von zu Hause aus', + minutes=60, + contents=[('competence', CompetenceBlockFactory())] + ) + LearningUnitFactory( + title='Selbsteinschätzung', + parent=circe_analyse, + package='Kind zieht von zu Hause aus', + minutes=0, + contents=[('self_evaluation', SelfEvaluationBlockFactory())] + ) - 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) + # 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) # all pages belong to 'admin' by default Page.objects.update(owner=user) diff --git a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py index 8cb9476b..da06e5aa 100644 --- a/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py +++ b/server/vbv_lernwelt/learnpath/tests/learning_path_factories.py @@ -2,7 +2,8 @@ import factory import wagtail_factories from vbv_lernwelt.learnpath.models import LearningPath, Topic, Circle, LearningSequence, LearningUnit -from vbv_lernwelt.learnpath.models_learning_unit_content import VideoBlock, WebBasedTrainingBlock +from vbv_lernwelt.learnpath.models_learning_unit_content import VideoBlock, RiseTrainingBlock, PodcastBlock, \ + CompetenceBlock, ExerciseBlock, SelfEvaluationBlock, DocumentBlock, KnowledgeBlock class LearningPathFactory(wagtail_factories.PageFactory): @@ -42,17 +43,59 @@ class LearningUnitFactory(wagtail_factories.PageFactory): class VideoBlockFactory(wagtail_factories.StructBlockFactory): - title = "Ausbildung ist Pflicht" - url = "https://www.vbv.ch/fileadmin/vbv/Videos/Statements_Externe/Janos_M/Testimonial_Janos_Mischler_PositiveEffekte.mp4" + url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" + description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam" class Meta: model = VideoBlock -class WebBasedTrainingBlockFactory(wagtail_factories.StructBlockFactory): - title = "Beispiel Rise Modul" +class RiseTrainingBlockFactory(wagtail_factories.StructBlockFactory): + url = "https://www.example.com" + description = "Beispiel Rise Modul" + + class Meta: + model = RiseTrainingBlock + + +class PodcastBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Podcast" url = "https://docs.wagtail.org/en/stable/topics/streamfield.html" class Meta: - model = WebBasedTrainingBlock + model = PodcastBlock + +class CompetenceBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Kompetenz" + + class Meta: + model = CompetenceBlock + + +class ExerciseBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Aufgabe" + + class Meta: + model = ExerciseBlock + + +class SelfEvaluationBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Selbsteinschätzung" + + class Meta: + model = SelfEvaluationBlock + + +class DocumentBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Dokument" + + class Meta: + model = DocumentBlock + + +class KnowledgeBlockFactory(wagtail_factories.StructBlockFactory): + description = "Beispiel Wissen" + + class Meta: + model = KnowledgeBlock