From 8e338f4773531ed6bfbe9d119ff5dab9b2e6f64b Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Wed, 28 Feb 2024 17:16:18 +0100 Subject: [PATCH] =?UTF-8?q?Add=20Motorfahrzeug=20Pr=C3=BCfungs=20circle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compose/django/docker_start.sh | 3 ++ server/vbv_lernwelt/course/consts.py | 1 + .../commands/create_default_courses.py | 30 +++++++++++++++++++ .../commands/create_motorfahrzeug_pruefung.py | 23 ++++++++++++++ .../learnpath/create_vv_new_learning_path.py | 27 +++++++++++++++-- 5 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 server/vbv_lernwelt/course/management/commands/create_motorfahrzeug_pruefung.py diff --git a/compose/django/docker_start.sh b/compose/django/docker_start.sh index 4e30ebbe..fe215a17 100644 --- a/compose/django/docker_start.sh +++ b/compose/django/docker_start.sh @@ -24,5 +24,8 @@ fi # Create Prüfungslehrgang python /app/manage.py create_vermittler_pruefung +# Create Motorfahrzeug Prüfungslehrgang +python /app/manage.py create_motorfahrzeug_pruefung + # Set the command to run supervisord /home/django/.local/bin/supervisord -c /app/supervisord.conf diff --git a/server/vbv_lernwelt/course/consts.py b/server/vbv_lernwelt/course/consts.py index 39fc79c9..f31bc968 100644 --- a/server/vbv_lernwelt/course/consts.py +++ b/server/vbv_lernwelt/course/consts.py @@ -9,3 +9,4 @@ COURSE_UK_TRAINING_IT = -9 COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID = -10 COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID = -11 COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID = -12 +COURSE_MOTORFAHRZEUG_PRUEFUNG_ID = -13 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 af21c29e..cb106e08 100644 --- a/server/vbv_lernwelt/course/management/commands/create_default_courses.py +++ b/server/vbv_lernwelt/course/management/commands/create_default_courses.py @@ -49,6 +49,7 @@ from vbv_lernwelt.core.constants import TEST_MENTOR1_USER_ID from vbv_lernwelt.core.create_default_users import default_users from vbv_lernwelt.core.models import User from vbv_lernwelt.course.consts import ( + COURSE_MOTORFAHRZEUG_PRUEFUNG_ID, COURSE_TEST_ID, COURSE_UK, COURSE_UK_FR, @@ -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_motorfahrzeug_pruefung_learning_path, create_vv_new_learning_path, create_vv_pruefung_learning_path, ) @@ -309,6 +311,34 @@ def create_versicherungsvermittlerin_pruefung_course( create_vv_pruefung_learning_path(course_id=course_id) +def create_motorfahrzeug_pruefung_course( + course_id=COURSE_MOTORFAHRZEUG_PRUEFUNG_ID, language="de" +): + names = { + "de": "Motorfahrzeug Versicherungsvermittler/-in VBV Prüfung", + "fr": "Véhicules à moteur Intermédiaire d’assurance AFA Examen", + "it": "Veicolo a motore 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_motorfahrzeug_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_motorfahrzeug_pruefung.py b/server/vbv_lernwelt/course/management/commands/create_motorfahrzeug_pruefung.py new file mode 100644 index 00000000..1a14534a --- /dev/null +++ b/server/vbv_lernwelt/course/management/commands/create_motorfahrzeug_pruefung.py @@ -0,0 +1,23 @@ +import djclick as click + +from vbv_lernwelt.course.consts import COURSE_MOTORFAHRZEUG_PRUEFUNG_ID +from vbv_lernwelt.course.management.commands.create_default_courses import ( + create_motorfahrzeug_pruefung_course, +) +from vbv_lernwelt.course.models import Course + +ADMIN_EMAILS = ["info@iterativ.ch", "admin"] + + +@click.command() +def command(): + print( + "Creating Motorfahrzeug Vermittler Prüfung course", + COURSE_MOTORFAHRZEUG_PRUEFUNG_ID, + ) + + if Course.objects.filter(id=COURSE_MOTORFAHRZEUG_PRUEFUNG_ID).exists(): + print("Course already exists, skipping") + return + + create_motorfahrzeug_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 a288a5fa..169fcc35 100644 --- a/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py +++ b/server/vbv_lernwelt/learnpath/create_vv_new_learning_path.py @@ -12,7 +12,11 @@ from vbv_lernwelt.competence.factories import ( ) from vbv_lernwelt.competence.models import ActionCompetence from vbv_lernwelt.core.admin import User -from vbv_lernwelt.course.consts import COURSE_VERSICHERUNGSVERMITTLERIN_ID +from vbv_lernwelt.course.consts import ( + COURSE_MOTORFAHRZEUG_PRUEFUNG_ID, + COURSE_VERSICHERUNGSVERMITTLERIN_ID, + COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID, +) from vbv_lernwelt.course.models import CourseCategory, CoursePage from vbv_lernwelt.learnpath.models import LearningUnitPerformanceFeedbackType from vbv_lernwelt.learnpath.tests.learning_path_factories import ( @@ -89,7 +93,7 @@ def create_vv_new_learning_path( def create_vv_pruefung_learning_path( - course_id=COURSE_VERSICHERUNGSVERMITTLERIN_ID, user=None + course_id=COURSE_VERSICHERUNGSVERMITTLERIN_PRUEFUNG_ID, user=None ): if user is None: user = User.objects.get(username="info@iterativ.ch") @@ -108,6 +112,25 @@ def create_vv_pruefung_learning_path( Page.objects.update(owner=user) +def create_vv_motorfahrzeug_pruefung_learning_path( + course_id=COURSE_MOTORFAHRZEUG_PRUEFUNG_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="Fahrzeug", parent=lp) + create_circle_fahrzeug(lp, course_page=course_page) + + # all pages belong to 'admin' by default + Page.objects.update(owner=user) + + def create_circle_basis(lp, title="Basis", course_page=None): circle = CircleFactory( title=title,