diff --git a/server/vbv_lernwelt/course/creators/uk_course.py b/server/vbv_lernwelt/course/creators/uk_course.py index 6e888644..bb93a7f5 100644 --- a/server/vbv_lernwelt/course/creators/uk_course.py +++ b/server/vbv_lernwelt/course/creators/uk_course.py @@ -318,6 +318,16 @@ In diesem Circle erfährst du wie die überbetrieblichen Kurse aufgebaut sind. Z ), ], ) + LearningUnitFactory(title="Kompetenznachweis", title_hidden=True, parent=circle) + LearningContentTestFactory( + title="Wissens- und Verständnisfragen", + parent=circle, + description=RichText( + "
Folgender Test mit Wissens- und Verständnisfragen ist Teil des Kompetenznachweises. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.
" + ), + checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden habe und den Test durchführen möchte.", + content_url="https://exam.vbv-afa.ch/", + ) LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle) LearningContentFeedbackFactory( parent=circle, @@ -356,23 +366,23 @@ Dans ce cercle, tu apprendras comment les cours interentreprises sont structuré title=f"Allgemeines zu Versicherungen", parent=circle, description=RichText( - f"In der Mediathek unter «Allgemeines zu Versicherungen» findest du alle relevanten Ressourcen für deine Fachkompetenzen.
" - f"Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.
" + f"Trouve toutes les ressources des champs d’action, comme les outils didactiques, les liens et autres informations utiles.
" + f"Nous te recommandons de te familiariser avec le sujet avant de suivre les autres unités de cours.
" ), - content_url=f"/course/überbetriebliche-kurse/media", + content_url=f"/course/{circle.get_course().slug}/media", ) LearningContentAssignmentFactory( - title="Versicherungswirtschaft", + title="Secteur de l'assurance", assignment_type="PREP_ASSIGNMENT", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-kickoff-versicherungswirtschaft" + slug__startswith=f"cours-interentreprises-assignment-circle-lancement-secteur-de-l-assurance" ), ), LearningSequenceFactory(title="Training", parent=circle) - LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle) + LearningUnitFactory(title="Cours de présence", title_hidden=True, parent=circle) LearningContentAttendanceCourseFactory( - title="Präsenzkurs Kickoff", + title="Cours de présence Lancement", parent=circle, ) LearningContentDocumentListFactory( @@ -385,8 +395,8 @@ Dans ce cercle, tu apprendras comment les cours interentreprises sont structuré title="Presentation 1a", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf", + link_display_text="Afficher le document", + url="/static/media/uk/fr_üK1_KO_03b_A_Einteilungen.pdf", ), ), ( @@ -395,7 +405,7 @@ Dans ce cercle, tu apprendras comment les cours interentreprises sont structuré title="Presentation 1b", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", + link_display_text="Afficher le document", url="/static/media/uk/fr_ük1_KO_00b_Präsentation.pdf", ), ), @@ -405,12 +415,24 @@ Dans ce cercle, tu apprendras comment les cours interentreprises sont structuré title="Feuille de travail Classification des assurances", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/it_üK1_KO_03b_A_Einteilungen.pdf", + link_display_text="Afficher le document", + url="/static/media/uk/fr_üK1_KO_03b_A_Einteilungen.pdf", ), ), ], ) + LearningUnitFactory( + title="Contrôle de compétences", title_hidden=True, parent=circle + ) + LearningContentTestFactory( + title="Questions de connaissances et de compréhension", + parent=circle, + description=RichText( + "Folgender Test mit Wissens- und Verständnisfragen ist Teil des Kompetenznachweises. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.
" + ), + checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden habe und den Test durchführen möchte.", + content_url="https://exam.vbv-afa.ch/", + ) LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle) LearningContentFeedbackFactory( parent=circle, @@ -421,7 +443,7 @@ Dans ce cercle, tu apprendras comment les cours interentreprises sont structuré title="Redlichkeitserklärung", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith="überbetriebliche-kurse-assignment-redlichkeits" + slug__startswith=f"{circle.get_course().slug}-assignment-redlichkeits" ), ) LearningContentAssignmentFactory( @@ -429,7 +451,7 @@ Dans ce cercle, tu apprendras comment les cours interentreprises sont structuré assignment_type="REFLECTION", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-reflexion" + slug__startswith=f"{circle.get_course().slug}-assignment-reflexion" ), ), @@ -444,30 +466,30 @@ In questo Circle imparerai come sono strutturati i corsi interaziendali. Imparer goals=UK_DE_CIRCLE_GOALS["kickoff"], ) LearningSequenceFactory( - title="Vorbereitung", parent=circle, icon="it-icon-ls-start" + title="Preparazione", parent=circle, icon="it-icon-ls-start" ) - LearningUnitFactory(title="Vorbereitung", title_hidden=True, parent=circle) + LearningUnitFactory(title="Preparazione", title_hidden=True, parent=circle) LearningContentMediaLibraryFactory( title=f"Allgemeines zu Versicherungen", parent=circle, description=RichText( - f"In der Mediathek unter «Allgemeines zu Versicherungen» findest du alle relevanten Ressourcen für deine Fachkompetenzen.
" - f"Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.
" + f"Nella mediateca, sotto il campo d'azione «Allgemeines zu Versicherungen», troverai tutte le risorse rilevanti per le tue competenze professionali." + f"
Si consiglia di leggere l'argomento prima di completare le altre unità di apprendimento.
" ), - content_url=f"/course/überbetriebliche-kurse/media", + content_url=f"/course/{circle.get_course().slug}/media", ) LearningContentAssignmentFactory( - title="Versicherungswirtschaft", + title="Settore Assicurativo", assignment_type="PREP_ASSIGNMENT", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-kickoff-versicherungswirtschaft" + slug__startswith=f"{circle.get_course().slug}-assignment-circle-introduzione-settore-assicurativo" ), ), LearningSequenceFactory(title="Training", parent=circle) - LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle) + LearningUnitFactory(title="Corso di presenza", title_hidden=True, parent=circle) LearningContentAttendanceCourseFactory( - title="Präsenzkurs Kickoff", + title="Corso di presenza Introduzione", parent=circle, ) LearningContentDocumentListFactory( @@ -480,8 +502,8 @@ In questo Circle imparerai come sono strutturati i corsi interaziendali. Imparer title="Presentation 1a", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_KO_03b_A_Einteilungen.pdf", + link_display_text="Mostra documento", + url="/static/media/uk/it_üK1_KO_03b_A_Einteilungen.pdf", ), ), ( @@ -490,7 +512,7 @@ In questo Circle imparerai come sono strutturati i corsi interaziendali. Imparer title="Presentation 1b", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", + link_display_text="Mostra documento", url="/static/media/uk/fr_ük1_KO_00b_Präsentation.pdf", ), ), @@ -499,19 +521,30 @@ In questo Circle imparerai come sono strutturati i corsi interaziendali. Imparer LearnMediaBlockFactory( title="Feuille de travail Classification des assurances", description="", - icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", + link_display_text="Mostra documento", url="/static/media/uk/it_üK1_KO_03b_A_Einteilungen.pdf", ), ), ], ) + LearningUnitFactory( + title="Controllo delle competenze", title_hidden=True, parent=circle + ) + LearningContentTestFactory( + title="Domande di conoscenza e di comprensione", + parent=circle, + description=RichText( + "Folgender Test mit Wissens- und Verständnisfragen ist Teil des Kompetenznachweises. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.
" + ), + checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden habe und den Test durchführen möchte.", + content_url="https://exam.vbv-afa.ch/", + ) LearningUnitFactory(title="Feedback", title_hidden=True, parent=circle) LearningContentFeedbackFactory( parent=circle, ) - LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end") - LearningUnitFactory(title="Reflexion", title_hidden=True, parent=circle) + LearningSequenceFactory(title="Trasferimento", parent=circle, icon="it-icon-ls-end") + LearningUnitFactory(title="Riflessione", title_hidden=True, parent=circle) LearningContentAssignmentFactory( title="Redlichkeitserklärung", parent=circle, @@ -520,11 +553,11 @@ In questo Circle imparerai come sono strutturati i corsi interaziendali. Imparer ), ) LearningContentAssignmentFactory( - title="Reflexion", + title="Riflessione", assignment_type="REFLECTION", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-reflexion" + slug__startswith=f"{circle.get_course().slug}-assignment-riflessione" ), ), @@ -576,7 +609,7 @@ In diesem Circle lernst du die wichtigsten Grundlagen bezüglich Versicherungswi description="", icon_url="/static/icons/demo/icon-hf-book.png", link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf", + url="/static/media/uk/fr_üK1_BA_00_Präsentation.pdf", ), ), ( @@ -652,23 +685,23 @@ Dans ce cercle, tu apprends les bases les plus importantes en matière d'assuran title=f"Allgemeines zu Versicherungen", parent=circle, description=RichText( - f"In der Mediathek unter «Allgemeines zu Versicherungen» findest du alle relevanten Ressourcen für deine Fachkompetenzen.
" - f"Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.
" + f"Trouve toutes les ressources des champs d’action, comme les outils didactiques, les liens et autres informations utiles.
" + f"Nous te recommandons de te familiariser avec le sujet avant de suivre les autres unités de cours.
" ), - content_url=f"/course/überbetriebliche-kurse/media", + content_url=f"/course/{circle.get_course().slug}/media", ) LearningContentAssignmentFactory( - title="Vorbereitungsauftrag Circle Basis", + title="Mandats préparatoires Circle Base", assignment_type="PREP_ASSIGNMENT", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-circle-basis" + slug__startswith=f"{circle.get_course().slug}-assignment-circle-base" ), ), LearningSequenceFactory(title="Training", parent=circle) - LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle) + LearningUnitFactory(title="Cours de présence", title_hidden=True, parent=circle) LearningContentAttendanceCourseFactory( - title="Präsenzkurs Basis", + title="Cours de présence base", parent=circle, ) LearningContentDocumentListFactory( @@ -681,18 +714,18 @@ Dans ce cercle, tu apprends les bases les plus importantes en matière d'assuran title="Presentation", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf", + link_display_text="Afficher le document", + url="/static/media/uk/fr_üK1_BA_00_Präsentation.pdf", ), ), ( "document", LearnMediaBlockFactory( - title="Risikomanagement", + title="Gestion des risques", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf", + link_display_text="Afficher le document", + url="/static/media/uk/fr_üK1_BA_04_A_Risikomanagement.pdf", ), ), ( @@ -701,18 +734,18 @@ Dans ce cercle, tu apprends les bases les plus importantes en matière d'assuran title="Quizzes", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_05_QR_Quizzes.pdf", + link_display_text="Afficher le document", + url="/static/media/uk/fr_üK1_BA_05_QR_Quizzes.pdf", ), ), ( "document", LearnMediaBlockFactory( - title="Versicherungsrecht", - description="Antragsannahme, Bindefrist und Widerrufsrecht – Kleine Fallstudie", + title="Droit des Assurances", + description="Acceptation de la demande, période de validité et droit de rétraction - Petite étude de cas", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_06_A_Versicherungsrecht.pdf", + link_display_text="Afficher le document", + url="/static/media/uk/fr_üK1_BA_06_A_Versicherungsrecht.pdf", ), ), ], @@ -721,10 +754,12 @@ Dans ce cercle, tu apprends les bases les plus importantes en matière d'assuran LearningContentFeedbackFactory( parent=circle, ) - LearningSequenceFactory(title="Transfer", parent=circle, icon="it-icon-ls-end") - LearningUnitFactory(title="Kompetenznachweis", title_hidden=True, parent=circle) + LearningSequenceFactory(title="Transfert", parent=circle, icon="it-icon-ls-end") + LearningUnitFactory( + title="Contrôle de compétences", title_hidden=True, parent=circle + ) LearningContentTestFactory( - title="Wissens- und Verständnisfragen", + title="Questions de connaissances et de compréhension", parent=circle, description=RichText( "Folgender Test mit Wissens- und Verständnisfragen ist Teil des Kompetenznachweises. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.
" @@ -732,13 +767,13 @@ Dans ce cercle, tu apprends les bases les plus importantes en matière d'assuran checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden habe und den Test durchführen möchte.", content_url="https://exam.vbv-afa.ch/", ) - LearningUnitFactory(title="Reflexion", title_hidden=True, parent=circle) + LearningUnitFactory(title="Réflexion", title_hidden=True, parent=circle) LearningContentAssignmentFactory( - title="Reflexion", + title="Réflexion", assignment_type="REFLECTION", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-reflexion" + slug__startswith=f"{circle.get_course().slug}-assignment-reflexion" ), ), @@ -758,23 +793,23 @@ In questo Circle imparerai le basi più importanti del settore assicurativo e de title=f"Allgemeines zu Versicherungen", parent=circle, description=RichText( - f"In der Mediathek unter «Allgemeines zu Versicherungen» findest du alle relevanten Ressourcen für deine Fachkompetenzen.
" - f"Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.
" + f"Nella mediateca, sotto il campo d'azione «Allgemeines zu Versicherungen», troverai tutte le risorse rilevanti per le tue competenze professionali." + f"
Si consiglia di leggere l'argomento prima di completare le altre unità di apprendimento.
" ), - content_url=f"/course/überbetriebliche-kurse/media", + content_url=f"/course/{circle.get_course().slug}/media", ) LearningContentAssignmentFactory( title="Vorbereitungsauftrag Circle Basis", assignment_type="PREP_ASSIGNMENT", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-circle-basis" + slug__startswith=f"{circle.get_course().slug}-assignment-cercle-base" ), ), LearningSequenceFactory(title="Training", parent=circle) - LearningUnitFactory(title="Präsenzkurs", title_hidden=True, parent=circle) + LearningUnitFactory(title="Corso di presenza", title_hidden=True, parent=circle) LearningContentAttendanceCourseFactory( - title="Präsenzkurs Basis", + title="Corso di presenza Base", parent=circle, ) LearningContentDocumentListFactory( @@ -787,18 +822,18 @@ In questo Circle imparerai le basi più importanti del settore assicurativo e de title="Presentation", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf", + link_display_text="Mostra documento", + url="/static/media/uk/it_üK1_BA_Presentation.pdf", ), ), ( "document", LearnMediaBlockFactory( - title="Risikomanagement", + title="Gestione dei rischi", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_04_A_Risikomanagement.pdf", + link_display_text="Mostra documento", + url="/static/media/uk/it_üK1_BA_04_A_Risikomanagement.pdf", ), ), ( @@ -807,18 +842,18 @@ In questo Circle imparerai le basi più importanti del settore assicurativo e de title="Quizzes", description="", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_05_QR_Quizzes.pdf", + link_display_text="Mostra documento", + url="/static/media/uk/it_üK1_BA_05_QR_Quizzes.pdf", ), ), ( "document", LearnMediaBlockFactory( - title="Versicherungsrecht", - description="Antragsannahme, Bindefrist und Widerrufsrecht – Kleine Fallstudie", + title="diritto assicurativo", + description="Accettazione della proposta, periodo vincolante e diritto di revoca - Piccolo caso di studio", icon_url="/static/icons/demo/icon-hf-book.png", - link_display_text="Dokument anzeigen", - url="/static/media/uk/de_üK1_BA_06_A_Versicherungsrecht.pdf", + link_display_text="Mostra documento", + url="/static/media/uk/it_üK1_BA_06_A_Versicherungsrecht.pdf", ), ), ], @@ -828,9 +863,11 @@ In questo Circle imparerai le basi più importanti del settore assicurativo e de parent=circle, ) LearningSequenceFactory(title="Trasferimento", parent=circle, icon="it-icon-ls-end") - LearningUnitFactory(title="Kompetenznachweis", title_hidden=True, parent=circle) + LearningUnitFactory( + title="Controllo delle competenze", title_hidden=True, parent=circle + ) LearningContentTestFactory( - title="Wissens- und Verständnisfragen", + title="Domande di conoscenza e di comprensione", parent=circle, description=RichText( "Folgender Test mit Wissens- und Verständnisfragen ist Teil des Kompetenznachweises. Der Test kann nur einmal durchgeführt werden und ist notenrelevant.
" @@ -838,13 +875,13 @@ In questo Circle imparerai le basi più importanti del settore assicurativo e de checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden habe und den Test durchführen möchte.", content_url="https://exam.vbv-afa.ch/", ) - LearningUnitFactory(title="Reflexion", title_hidden=True, parent=circle) + LearningUnitFactory(title="Riflessione", title_hidden=True, parent=circle) LearningContentAssignmentFactory( - title="Reflexion", + title="Riflessione", assignment_type="REFLECTION", parent=circle, content_assignment=Assignment.objects.get( - slug__startswith=f"überbetriebliche-kurse-assignment-reflexion" + slug__startswith=f"{circle.get_course().slug}-assignment-riflessione" ), ), 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 90f7708f..57bed988 100644 --- a/server/vbv_lernwelt/course/management/commands/create_default_courses.py +++ b/server/vbv_lernwelt/course/management/commands/create_default_courses.py @@ -4,7 +4,6 @@ from datetime import datetime, timedelta import djclick as click from dateutil.relativedelta import MO, relativedelta, TH, TU -from django.conf import settings from django.utils import timezone from vbv_lernwelt.assignment.creators.create_assignments import ( @@ -463,11 +462,10 @@ def create_course_uk_it(): create_uk_it_competence_profile(course_id=COURSE_UK_IT) create_default_media_library(course_id=COURSE_UK_IT) - if settings.APP_ENVIRONMENT != "production": - _cs = CourseSession.objects.create( - course_id=COURSE_UK_IT, - title="Demo ci 2023 IT", - ) + _cs = CourseSession.objects.create( + course_id=COURSE_UK_IT, + title="Demo ci 2023 IT", + ) def create_course_uk_de_assignment_completion_data(assignment, course_session, user): diff --git a/server/vbv_lernwelt/edoniq_test/tests/test_edoniq_export.py b/server/vbv_lernwelt/edoniq_test/tests/test_edoniq_export.py index 80bd3bcb..6bcd0306 100644 --- a/server/vbv_lernwelt/edoniq_test/tests/test_edoniq_export.py +++ b/server/vbv_lernwelt/edoniq_test/tests/test_edoniq_export.py @@ -42,7 +42,7 @@ class EdoniqUserExportTestCase(TestCase): user_data = [ [ - user.user.email, + user.user.additional_json_data.get("Lehrvertragsnummer", ""), user.user.first_name, user.user.last_name, "m", diff --git a/server/vbv_lernwelt/edoniq_test/views.py b/server/vbv_lernwelt/edoniq_test/views.py index 8f2f5a7c..61537ca1 100644 --- a/server/vbv_lernwelt/edoniq_test/views.py +++ b/server/vbv_lernwelt/edoniq_test/views.py @@ -52,7 +52,7 @@ def generate_export_response(cs_users: List[CourseSessionUser]) -> HttpResponse: for cs_user in cs_users: writer.writerow( [ - cs_user.user.email, + cs_user.user.additional_json_data.get("Lehrvertragsnummer", ""), cs_user.user.first_name, cs_user.user.last_name, "m",