diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py index 732d04f2..fce96ea7 100644 --- a/server/vbv_lernwelt/learnpath/models.py +++ b/server/vbv_lernwelt/learnpath/models.py @@ -1,17 +1,24 @@ # Create your models here. from django.db import models -from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel +from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel, PageChooserPanel, InlinePanel from wagtail.core.blocks import StreamBlock from wagtail.core.fields import StreamField from wagtail.core.models import Page +from modelcluster.fields import ParentalKey + from vbv_lernwelt.learnpath.models_learning_unit_content import WebBasedTrainingBlock, VideoBlock class LearningPath(Page): + #PageChooserPanel('related_page', 'demo.PublisherPage'), + + content_panels = Page.content_panels + [ FieldPanel('title', classname="full"), + InlinePanel('topics', label="Topics"), + ] subpage_types = ['learnpath.Topic'] @@ -25,9 +32,17 @@ class LearningPath(Page): class Topic(Page): is_visible = models.BooleanField(default=True) + learning_path = ParentalKey( + 'learnpath.LearningPath', + null=True, + blank=True, + on_delete=models.SET_NULL, + related_name='topics', + ) content_panels = Page.content_panels + [ FieldPanel('is_visible', classname="full"), + PageChooserPanel('learning_path', 'learnpath.LearningPath'), ] parent_page_types = ['learnpath.LearningPath'] @@ -44,12 +59,14 @@ class Circle(Page): description = models.TextField(default="", blank=True) goals = models.TextField(default="", blank=True) + parent_page_types = ['learnpath.Topic'] subpage_types = ['learnpath.LearningSequence'] content_panels = Page.content_panels + [ FieldPanel('description'), FieldPanel('goals'), + #InlinePanel('circle', label="Learning Sequences"), ] class Meta: @@ -77,6 +94,9 @@ class LearningSequence(Page): parent_page_types = ['learnpath.Circle'] subpage_types = ['learnpath.LearningUnit'] + + + class Meta: verbose_name = "Learning Sequence" 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 81a2c1db..3476e754 100644 --- a/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py +++ b/server/vbv_lernwelt/learnpath/tests/create_default_learning_path.py @@ -44,7 +44,7 @@ von Neukunden zu benützen — Das Thema Risiko und Sicherheit in einem Gespräch gezielt und auf die Situation des jeweiligen Gesprächspartners bezogen einfliessen zu lassen — Im täglichen Kontakt potenzielle Kundinnen und Kunden zu erkennen""") - tp = TopicFactory.create(title="Beraten der Kunden", parent=lp) + tp = TopicFactory.create(title="Beraten der Kunden", learning_path=lp, parent=lp) circle_3 = CircleFactory.create(title="Einstieg", parent=tp) circle_4 = CircleFactory.create(title="Analyse", parent=tp, description="""Nach dem Gespräch werten sie die Analyse aus und erstellen mit den @@ -87,7 +87,6 @@ von Neukunden zu benützen learning_unit = LearningUnitFactory.create(title="Manuel träumt von einem neuen Tesla", parent=sequence_3) learning_unit = LearningUnitFactory.create(title="Deine Erkenntnisse und Learnings", parent=sequence_3) - sequence_4 = LearningSequenceFactory.create(title="Üben", parent=circle_4) learning_unit = LearningUnitFactory.create(title="Ermittlung des Kundenbedarfs", parent=sequence_4) learning_unit = LearningUnitFactory.create(title="Aktives Zuhören", parent=sequence_4) @@ -105,9 +104,6 @@ von Neukunden zu benützen sequence_6 = LearningSequenceFactory.create(title="Beenden", parent=circle_4) learning_unit = LearningUnitFactory.create(title="Selbsteinschätzung", parent=sequence_6) - - - circle_5 = CircleFactory.create(title="Lösung", parent=tp, goals="""— Die Daten des Kunden korrekt in die notwendigen Systeme einzutragen @@ -122,10 +118,10 @@ von Neukunden zu benützen 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", parent=lp) + tp = TopicFactory.create(title="Betreuen und Ausbauen des Kundenstamms", learning_path=lp, parent=lp) circle_7 = CircleFactory.create(title="Betreuen", parent=tp) - tp = TopicFactory.create(title="Prüfung", is_visible=False, parent=lp) + tp = TopicFactory.create(title="Prüfung", is_visible=False, learning_path=lp, parent=lp) circle_7 = CircleFactory.create(title="Prüfungsvorbereitung", parent=tp)