Add VV reset

This commit is contained in:
Christian Cueni 2024-02-26 09:33:01 +01:00
parent ae97931ca5
commit abb9b4b7db
1 changed files with 81 additions and 13 deletions

View File

@ -4,16 +4,23 @@ import djclick as click
import structlog
from django.utils import timezone
from vbv_lernwelt.assignment.models import AssignmentCompletion
from vbv_lernwelt.assignment.models import Assignment, AssignmentCompletion
from vbv_lernwelt.core.admin import User
from vbv_lernwelt.course.consts import COURSE_UK
from vbv_lernwelt.course.consts import (
COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID,
COURSE_VERSICHERUNGSVERMITTLERIN_ID,
COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID,
)
from vbv_lernwelt.course.models import (
Course,
CourseCompletion,
CourseSession,
CourseSessionUser,
)
from vbv_lernwelt.course_session.models import CourseSessionAttendanceCourse
from vbv_lernwelt.course_session.models import (
CourseSessionAssignment,
CourseSessionAttendanceCourse,
)
from vbv_lernwelt.course_session_group.models import CourseSessionGroup
from vbv_lernwelt.feedback.models import FeedbackResponse
from vbv_lernwelt.learning_mentor.models import LearningMentor
@ -23,15 +30,11 @@ from vbv_lernwelt.notify.models import Notification
logger = structlog.get_logger(__name__)
from vbv_lernwelt.importer.services import (
create_or_update_course_session,
get_uk_course,
LP_DATA,
TRANSLATIONS,
)
# create durchführung
# create users
# create / reset data coursesession-data
# reset connections
IT_VV_TEST_COURSE = "Iterativ VV Testkurs"
IT_UK_TEST_COURSE = "Iterativ üK Testkurs"
IT_UK_TEST_REGION = "Iterativ Region"
@ -44,10 +47,11 @@ logger = structlog.get_logger(__name__)
@click.command()
def command():
create_or_update_uk()
create_or_update_vv()
def create_or_update_uk(language="de"):
uk_course = Course.objects.get(id=COURSE_UK)
uk_course = get_uk_course(language)
uk_circle_keys = [
"Kickoff",
"Basis",
@ -73,7 +77,21 @@ def create_or_update_uk(language="de"):
add_mentor_to_course_session(cs, [(mentor, member_with_mentor)])
create_and_add_to_cs_group(cs.course, IT_UK_TEST_REGION, [cs], regionenleiter)
# create group for regionenleiter
def create_or_update_vv(language="de"):
vv_course = get_vv_course(language)
cs, _created = CourseSession.objects.get_or_create(
course=vv_course, import_id=IT_VV_TEST_COURSE
)
cs.title = IT_VV_TEST_COURSE
cs.save()
create_or_update_assignment_course_session(cs)
members, member_with_mentor, mentor = reset_vv_users()
delete_cs_data(cs, members + [member_with_mentor, mentor])
add_to_course_session(cs, members + [member_with_mentor])
add_mentor_to_course_session(cs, [(mentor, member_with_mentor)])
def delete_cs_data(cs: CourseSession, users: list[User]):
@ -145,7 +163,6 @@ def add_trainers_to_course_session(
def reset_uk_users():
# todo create more users
members = [
_create_or_update_user(
f"teilnehmer{n}.uk@iterativ.ch", "Teilnehmer üK", "Iterativ", PASSWORD, "de"
@ -179,6 +196,30 @@ def reset_uk_users():
return members, member_with_mentor, trainer, regionenleiter, mentor
def reset_vv_users():
members = [
_create_or_update_user(
f"teilnehmer{n}.vv@iterativ.ch", "Teilnehmer VV", "Iterativ", PASSWORD, "de"
)
for n in range(1, 10)
]
member_with_mentor = _create_or_update_user(
"teilnehmer1.vv.lb@iterativ.ch",
"Teilnehmer VV mit LB",
"Iterativ",
PASSWORD,
"de",
)
mentor = _create_or_update_user(
"lernbegleitung1.vv@iterativ.ch",
"Lernbegleitung VV",
"Iterativ",
PASSWORD,
"de",
)
return members, member_with_mentor, mentor
def _create_or_update_user(email, first_name, last_name, password, language):
try:
user = User.objects.get(email=email)
@ -200,8 +241,8 @@ def _create_or_update_user(email, first_name, last_name, password, language):
def create_uk_data(language):
return {
"Klasse": "Iterativ Test üK",
"ID": "Iterativ Test üK",
"Klasse": IT_UK_TEST_COURSE,
"ID": IT_UK_TEST_COURSE,
"Generation": 2024,
"Region": "Bern",
"Sprache": language,
@ -265,3 +306,30 @@ def create_and_add_to_cs_group(
region.course_session.add(cs)
region.supervisor.add(supervisor)
def get_vv_course(language: str) -> Course:
if language == "fr":
course_id = COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID
elif language == "it":
course_id = COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID
else:
course_id = COURSE_VERSICHERUNGSVERMITTLERIN_ID
return Course.objects.get(id=course_id)
def create_or_update_assignment_course_session(cs: CourseSession):
# not nice but works for now
for assignment in Assignment.objects.all():
if assignment.get_course().id == cs.course.id:
logger.debug(
"create_course_session_assigments",
assignment=assignment,
label="reset_test_courses",
)
for lca in assignment.learningcontentassignment_set.all():
_csa, _created = CourseSessionAssignment.objects.get_or_create(
course_session=cs,
learning_content=lca,
)