diff --git a/server/vbv_lernwelt/course/consts.py b/server/vbv_lernwelt/course/consts.py index 5b3b30ab..39fc79c9 100644 --- a/server/vbv_lernwelt/course/consts.py +++ b/server/vbv_lernwelt/course/consts.py @@ -8,3 +8,4 @@ COURSE_UK_IT = -8 COURSE_UK_TRAINING_IT = -9 COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID = -10 COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID = -11 +COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID = -12 diff --git a/server/vbv_lernwelt/course/creators/versicherungsvermittlerin.py b/server/vbv_lernwelt/course/creators/versicherungsvermittlerin.py index 48fa0bc6..2ad76a87 100644 --- a/server/vbv_lernwelt/course/creators/versicherungsvermittlerin.py +++ b/server/vbv_lernwelt/course/creators/versicherungsvermittlerin.py @@ -1,5 +1,6 @@ from vbv_lernwelt.course.consts import COURSE_VERSICHERUNGSVERMITTLERIN_ID from vbv_lernwelt.course.factories import CoursePageFactory +from vbv_lernwelt.course.models import CircleContactType from vbv_lernwelt.course.utils import get_wagtail_default_site @@ -20,6 +21,8 @@ def create_versicherungsvermittlerin_with_categories( id=course_id, title=title, category_name="Handlungsfeld", + enable_circle_documents=False, + circle_contact_type=CircleContactType.LEARNING_MENTOR.value, ) CourseCategory.objects.get_or_create(course=course, title="Allgemein", general=True) diff --git a/server/vbv_lernwelt/course/management/commands/create_default_courses.py b/server/vbv_lernwelt/course/management/commands/create_default_courses.py index ac931c2d..af21c29e 100644 --- a/server/vbv_lernwelt/course/management/commands/create_default_courses.py +++ b/server/vbv_lernwelt/course/management/commands/create_default_courses.py @@ -59,6 +59,7 @@ from vbv_lernwelt.course.consts import ( COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID, COURSE_VERSICHERUNGSVERMITTLERIN_ID, COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID, + COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID, ) from vbv_lernwelt.course.creators.test_course import ( create_edoniq_test_assignment, @@ -95,6 +96,7 @@ from vbv_lernwelt.importer.services import ( from vbv_lernwelt.learning_mentor.models import LearningMentor from vbv_lernwelt.learnpath.create_vv_new_learning_path import ( create_vv_new_learning_path, + create_vv_pruefung_learning_path, ) from vbv_lernwelt.learnpath.models import ( Circle, @@ -153,6 +155,9 @@ def command(course): course_id=COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID, language="it" ) + if COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID in course: + create_versicherungsvermittlerin_pruefung_course() + if COURSE_UK in course: create_course_uk_de() create_course_uk_de_course_sessions() @@ -276,6 +281,34 @@ def create_versicherungsvermittlerin_course( ) +def create_versicherungsvermittlerin_pruefung_course( + course_id=COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID, language="de" +): + names = { + "de": "Versicherungsvermittler/-in VBV Prüfung", + "fr": "Intermédiaire d’assurance AFA Examen", + "it": "Intermediario/a assicurativo/a AFA Esame", + } + # Versicherungsvermittler/in mit neuen Circles + course = create_versicherungsvermittlerin_with_categories( + course_id=course_id, + title=names[language], + ) + + # assignments create assignments parent page + _assignment_list_page = AssignmentListPageFactory( + parent=course.coursepage, + ) + + create_vv_new_competence_profile(course_id=course_id) + create_default_media_library(course_id=course_id) + create_vv_reflection(course_id=course_id) + + CourseSession.objects.create(course_id=course_id, title=names[language]) + + create_vv_pruefung_learning_path(course_id=course_id) + + def create_course_uk_de(course_id=COURSE_UK, lang="de"): names = { "de": "Überbetriebliche Kurse", diff --git a/server/vbv_lernwelt/course/management/commands/create_vermittler_pruefung.py b/server/vbv_lernwelt/course/management/commands/create_vermittler_pruefung.py new file mode 100644 index 00000000..c227d1b0 --- /dev/null +++ b/server/vbv_lernwelt/course/management/commands/create_vermittler_pruefung.py @@ -0,0 +1,23 @@ +import djclick as click + +from vbv_lernwelt.course.consts import COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID +from vbv_lernwelt.course.management.commands.create_default_courses import ( + create_versicherungsvermittlerin_pruefung_course, +) +from vbv_lernwelt.course.models import Course + +ADMIN_EMAILS = ["info@iterativ.ch", "admin"] + + +@click.command() +def command(): + print( + "Creating Vermittler Prüfung course", + COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID, + ) + + if Course.objects.filter(id=COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID).exists(): + print("Course already exists, skipping") + return + + create_versicherungsvermittlerin_pruefung_course() diff --git a/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py b/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py index 915b2239..29eee41e 100644 --- a/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py +++ b/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py @@ -83,6 +83,26 @@ def create_vv_new_learning_path( Page.objects.update(owner=user) +def create_vv_pruefung_learning_path( + course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID, user=None +): + 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, + ) + + TopicFactory(title="Prüfung", parent=lp) + create_circle_pruefungsvorbereitung(lp) + create_circle_pruefung(lp) + + # all pages belong to 'admin' by default + Page.objects.update(owner=user) + + def create_circle_basis(lp, title="Basis"): circle = CircleFactory( title=title,