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

168 lines
5.5 KiB
Python

import wagtail_factories
from django.conf import settings
from wagtail.models import Site
from vbv_lernwelt.core.create_default_users import create_default_users
from vbv_lernwelt.core.tests.helpers import create_locales_for_wagtail
from vbv_lernwelt.course.consts import COURSE_TEST_ID
from vbv_lernwelt.course.factories import CoursePageFactory
from vbv_lernwelt.course.models import CoursePage, CourseCategory
from vbv_lernwelt.learnpath.tests.learning_path_factories import CircleFactory, LearningSequenceFactory, \
LearningContentFactory, DocumentBlockFactory, LearningUnitFactory, TestBlockFactory, ExerciseBlockFactory, \
LearningPathFactory, TopicFactory, OnlineTrainingBlockFactory
def create_test_course():
create_locales_for_wagtail()
create_test_course_with_categories()
create_test_learning_path()
def create_test_course_with_categories(apps=None, schema_editor=None):
if apps is not None:
Course = apps.get_model('course', 'Course')
CourseCategory = apps.get_model('course', 'CourseCategory')
else:
# pylint: disable=import-outside-toplevel
from vbv_lernwelt.course.models import Course, CourseCategory
course, _ = Course.objects.get_or_create(
id=COURSE_TEST_ID,
title='Test Lerngang',
category_name='Handlungsfeld'
)
CourseCategory.objects.get_or_create(course=course, title='Allgemein', general=True)
for cat in [
'Fahrzeug', 'Reisen',
]:
CourseCategory.objects.get_or_create(course=course, title=cat)
# create default course page
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 = CoursePageFactory(
title="Test Lehrgang",
parent=site.root_page,
course=course,
)
def create_test_learning_path(user=None, skip_locales=True):
course_page = CoursePage.objects.get(course_id=COURSE_TEST_ID)
lp = LearningPathFactory(
title="Test Lernpfad", parent=course_page
)
TopicFactory(title="Basis", is_visible=False, parent=lp)
circle_basis = CircleFactory(
title="Basis",
parent=lp,
description="Basis",
)
LearningSequenceFactory(title='Starten', parent=circle_basis, icon='it-icon-ls-start')
LearningContentFactory(
title='Einführung',
parent=circle_basis,
minutes=15,
contents=[('document', DocumentBlockFactory())]
)
LearningSequenceFactory(title='Beenden', parent=circle_basis, icon='it-icon-ls-end')
LearningContentFactory(
title='Jetzt kann es losgehen!',
parent=circle_basis,
minutes=30,
contents=[('document', DocumentBlockFactory())]
)
TopicFactory(title="Beraten der Kunden", parent=lp)
circle = CircleFactory(
title="Analyse",
parent=lp,
description="Unit-Test Circle",
job_situations=[
('job_situation', 'Autoversicherung'),
('job_situation', 'Autokauf'),
],
goals=[
('goal', '... die heutige Versicherungssituation von Privat- oder Geschäftskunden einzuschätzen.'),
('goal', '... deinem Kunden seine optimale Lösung aufzuzeigen'),
],
experts=[
('person', {'last_name': 'Huggel', 'first_name': 'Patrizia', 'email': 'patrizia.huggel@example.com'}),
]
)
LearningSequenceFactory(title='Starten', parent=circle, icon='it-icon-ls-start')
LearningContentFactory(
title=f'Einleitung Circle "Analyse"',
parent=circle,
minutes=15,
contents=[('document', DocumentBlockFactory())]
)
LearningSequenceFactory(title='Beobachten', parent=circle, icon='it-icon-ls-watch')
lu = LearningUnitFactory(
title='Fahrzeug',
parent=circle,
course_category=CourseCategory.objects.get(course_id=COURSE_TEST_ID, title='Fahrzeug'),
)
LearningContentFactory(
title='Rafael Fasel wechselt sein Auto',
parent=circle,
minutes=30,
contents=[('online_training', OnlineTrainingBlockFactory(
description='In diesem Online-Training lernst du, wie du den Kundenbedarf ermittelst.',
url='',
))]
)
LearningContentFactory(
title='Fachcheck Fahrzeug',
parent=circle,
minutes=30,
contents=[('test', TestBlockFactory())]
)
lu = LearningUnitFactory(
title='Reisen',
parent=circle,
course_category=CourseCategory.objects.get(course_id=COURSE_TEST_ID, title='Reisen'),
)
LearningContentFactory(
title='Reiseversicherung',
parent=circle,
minutes=240,
contents=[('exercise', ExerciseBlockFactory())]
)
LearningContentFactory(
title='Emma und Ayla campen durch Amerika',
parent=circle,
minutes=120,
contents=[('exercise', ExerciseBlockFactory(
url='/static/media/web_based_trainings/story-06-a-01-emma-und-ayla-campen-durch-amerika-einstieg/scormcontent/index.html'))]
)
LearningSequenceFactory(title='Beenden', parent=circle, icon='it-icon-ls-end')
LearningContentFactory(
title='Kompetenzprofil anschauen',
parent=circle,
minutes=30,
contents=[('document', DocumentBlockFactory())]
)
LearningContentFactory(
title='Circle "Analyse" abschliessen',
parent=circle,
minutes=30,
contents=[('document', DocumentBlockFactory())]
)