168 lines
5.5 KiB
Python
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())]
|
|
)
|
|
|