vbv/server/vbv_lernwelt/course/creators/uk_training_course.py

60 lines
2.0 KiB
Python

from django.core.management import call_command
from wagtail.models import Locale, Page
from wagtail_localize.models import LocaleSynchronization
from vbv_lernwelt.core.admin import User
from vbv_lernwelt.course.consts import (
COURSE_UK_TRAINING,
COURSE_UK_TRAINING_FR,
COURSE_UK_TRAINING_IT,
)
from vbv_lernwelt.course.creators.uk_course import (
create_uk_circle_fahrzeug,
create_uk_fr_circle_fahrzeug,
create_uk_it_circle_fahrzeug,
)
from vbv_lernwelt.course.models import CoursePage
from vbv_lernwelt.learnpath.tests.learning_path_factories import (
LearningPathFactory,
TopicFactory,
)
def create_uk_training_learning_path(
course_id=COURSE_UK_TRAINING, user=None, skip_locales=True
):
if user is None:
user = User.objects.get(username="info@iterativ.ch")
course_page = CoursePage.objects.get(course_id=course_id)
lp = LearningPathFactory(
title="Lernpfad",
parent=course_page,
)
if course_id == COURSE_UK_TRAINING:
TopicFactory(title="Training", is_visible=True, parent=lp)
create_uk_circle_fahrzeug(lp)
elif course_id == COURSE_UK_TRAINING_FR:
TopicFactory(title="Training", is_visible=True, parent=lp)
create_uk_fr_circle_fahrzeug(lp)
elif course_id == COURSE_UK_TRAINING_IT:
TopicFactory(title="Training", is_visible=True, parent=lp)
create_uk_it_circle_fahrzeug(lp)
# 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)