import wagtail_factories from django.conf import settings from django.core.management import call_command from wagtail.models import Locale, Page, Site from wagtail_localize.models import LocaleSynchronization from vbv_lernwelt.core.admin import User from vbv_lernwelt.course.consts import COURSE_UK, COURSE_UK_FR from vbv_lernwelt.course.models import CoursePage from vbv_lernwelt.learnpath.create_vv_learning_path import ( create_learning_content_beenden, ) from vbv_lernwelt.learnpath.tests.learning_path_factories import ( CircleFactory, LearningContentFactory, LearningPathFactory, LearningSequenceFactory, LearningUnitFactory, TopicFactory, ) def create_uk_learning_path(course_id=COURSE_UK, user=None, skip_locales=True): if user is None: user = User.objects.get(username="info@iterativ.ch") site = Site.objects.filter(is_default_site=True).first() if not site: site = wagtail_factories.SiteFactory(is_default_site=True) if settings.APP_ENVIRONMENT == "development": site.port = 8000 site.save() course_page = CoursePage.objects.get(course_id=course_id) lp = LearningPathFactory( title="Lernpfad", parent=course_page, ) TopicFactory(title="üK1", is_visible=True, parent=lp) create_uk_circle(lp, title="Kickoff") create_uk_circle(lp, title="Basis") create_uk_circle(lp, title="Fahrzeug") create_uk_circle(lp, title="Haushalt Teil 1") create_uk_circle(lp, title="Haushalt Teil 2") TopicFactory(title="üK2", is_visible=True, parent=lp) create_uk_circle(lp, title="Reisen & Rechtsstreitigkeiten") create_uk_circle(lp, title="Wohneigentum") create_uk_circle(lp, title="KMU Teil 1") create_uk_circle(lp, title="KMU Teil 2") create_uk_circle(lp, title="3-Säulenkonzept") create_uk_circle(lp, title="Einkommenssicherung (Invalidität)") create_uk_circle(lp, title="Einkommenssicherung (Todesfall)") create_uk_circle(lp, title="Pensionierung (Todesfall)") TopicFactory(title="üK3", is_visible=True, parent=lp) create_uk_circle(lp, title="Gesundheit") create_uk_circle(lp, title="Prüfungsvorbereitung Teil 1") create_uk_circle(lp, title="Prüfungsvorbereitung Teil 2") # locales if not skip_locales: locale_de = Locale.objects.get(language_code="de-CH") locale_fr, _ = Locale.objects.get_or_create(language_code="fr-CH") LocaleSynchronization.objects.get_or_create( locale_id=locale_fr.id, sync_from_id=locale_de.id ) locale_it, _ = Locale.objects.get_or_create(language_code="it-CH") LocaleSynchronization.objects.get_or_create( locale_id=locale_it.id, sync_from_id=locale_de.id ) call_command("sync_locale_trees") # all pages belong to 'admin' by default Page.objects.update(owner=user) def create_uk_fr_learning_path(course_id=COURSE_UK_FR, user=None, skip_locales=True): if user is None: user = User.objects.get(username="info@iterativ.ch") site = Site.objects.filter(is_default_site=True).first() if not site: site = wagtail_factories.SiteFactory(is_default_site=True) if settings.APP_ENVIRONMENT == "development": site.port = 8000 site.save() course_page = CoursePage.objects.get(course_id=course_id) lp = LearningPathFactory( title="Lernpfad", parent=course_page, ) TopicFactory(title="1ère année", is_visible=True, parent=lp) create_uk_circle(lp, title="Coup d'envoi") create_uk_circle(lp, title="Base") create_uk_circle(lp, title="Véhicule") create_uk_circle(lp, title="Budget Partie 1") create_uk_circle(lp, title="Budget Partie 2") TopicFactory(title="2ème année", is_visible=True, parent=lp) create_uk_circle(lp, title="Voyages / Protection juridique") create_uk_circle(lp, title="Proprieté du logement") create_uk_circle(lp, title="PME Partie 1") create_uk_circle(lp, title="PME Partie 2") create_uk_circle(lp, title="Concept des 3") create_uk_circle(lp, title="Garantie des revenus, Partie 1") create_uk_circle(lp, title="Garantie des revenus, Partie 2") create_uk_circle(lp, title="Retraite") TopicFactory(title="3ème année", is_visible=True, parent=lp) create_uk_circle(lp, title="Santé") create_uk_circle(lp, title="Préparation à l'examen, Partie 1") create_uk_circle(lp, title="Préparation à l'examen, Partie 2") # locales if not skip_locales: locale_de = Locale.objects.get(language_code="de-CH") locale_fr, _ = Locale.objects.get_or_create(language_code="fr-CH") LocaleSynchronization.objects.get_or_create( locale_id=locale_fr.id, sync_from_id=locale_de.id ) locale_it, _ = Locale.objects.get_or_create(language_code="it-CH") LocaleSynchronization.objects.get_or_create( locale_id=locale_it.id, sync_from_id=locale_de.id ) call_command("sync_locale_trees") # all pages belong to 'admin' by default Page.objects.update(owner=user) def create_uk_circle(lp, title="Kickoff"): circle = CircleFactory( title=title, parent=lp, description=""" In diesem Circle erfährst du wie der Lehrgang aufgebaut ist. Zudem lernst du die wichtigsten Grundlagen, damit du erfolgreich mit deinem Lernpfad (durch-)starten kannst. """.strip(), goal_description="In diesem Circle baust du Grundlagenwissen für die folgenden Themenfelder auf:", goals=[ ("goal", "Aufbau und Umgang mit dem Lernpfad"), ("goal", "Lerntechnik"), ("goal", "Arbeitstechnik"), ("goal", "Beraten und Verkaufen"), ("goal", "Versicherungswirtschaft"), ("goal", "Versicherungsrecht"), ], job_situations=[], ) LearningSequenceFactory(title="Start", parent=circle, icon="it-icon-ls-start") LearningUnitFactory(title="Einführung", parent=circle) LearningContentFactory( title="Willkommen im üK", parent=circle, ) LearningUnitFactory(title="Arbeits- und Lerntechnik", parent=circle) LearningContentFactory( title="Mediathek", parent=circle, ) LearningContentFactory( title="Luca organisiert seinen Arbeitsalltag", parent=circle, ) LearningContentFactory( title="Luca legt sich seine Lernstrategie zurecht", parent=circle, ) LearningContentFactory( title="Fachcheck Arbeits- und Lerntechnik", parent=circle, ) LearningSequenceFactory(title="Training", parent=circle, icon="it-icon-ls-watch") LearningUnitFactory(title="Versicherung", parent=circle) LearningContentFactory( title="Mediathek", parent=circle, ) LearningContentFactory( title="Luca startet durch", parent=circle, ) LearningContentFactory( title="Fachcheck Allgemeines zu Versicherungen", parent=circle, ) LearningUnitFactory(title="Beratung und Verkauf", parent=circle) LearningContentFactory( title="Mediathek", parent=circle, ) LearningContentFactory( title="Luca macht sich fit im Verkauf", parent=circle, ) LearningContentFactory( title="Fachcheck Beratung und Verkauf", parent=circle, ) LearningSequenceFactory( title="Kompetenznachweis", parent=circle, icon="it-icon-ls-watch" ) LearningUnitFactory(title="Sozialer Auftritt", parent=circle) LearningContentFactory( title="Mediathek", parent=circle, ) LearningContentFactory( title="Lerninhalt offen", parent=circle, ) LearningContentFactory( title="Fachcheck Sozialer Auftritt", parent=circle, ) LearningSequenceFactory( title="Nachbearbeitung", parent=circle, icon="it-icon-ls-watch" ) LearningUnitFactory(title="Sozialer Auftritt", parent=circle) LearningContentFactory( title="Mediathek", parent=circle, ) LearningContentFactory( title="Lerninhalt offen", parent=circle, ) LearningContentFactory( title="Fachcheck Sozialer Auftritt", parent=circle, ) LearningSequenceFactory(title="Abschluss", parent=circle, icon="it-icon-ls-end") LearningUnitFactory(title="Circle beenden", parent=circle) create_learning_content_beenden(circle)