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())] )