Fix creation scripts

This commit is contained in:
Daniel Egger 2023-09-06 14:04:46 +02:00
parent cce82b72ad
commit aabaced836
9 changed files with 106 additions and 29 deletions

View File

@ -22,9 +22,15 @@ const getIconName = () => {
<div class="flex w-[420px] flex-col">
<h3 class="text-bold flex items-center gap-2">{{ assignment.title }}</h3>
<p class="text-gray-800">
<a :href="assignment.frontend_url" class="link" target="_blank">
<a
v-if="assignment.learning_content"
:href="assignment.frontend_url"
class="link"
target="_blank"
>
Im Circle «{{ assignment.learning_content.circle.title }}» anschauen
</a>
<span v-else>Fehler, Lerninhalt nicht korrekt verknüpft</span>
</p>
</div>
<div class="grow px-8">

View File

@ -18,7 +18,7 @@ const courseSession = useCurrentCourseSession();
const queryResult = useQuery({
query: COMPETENCE_NAVI_CERTIFICATE_QUERY,
variables: {
courseSlug: "test-lehrgang",
courseSlug: props.courseSlug,
courseSessionId: courseSession.value.id.toString(),
},
});

View File

@ -390,9 +390,11 @@ export interface CompetenceProfilePage extends BaseCourseWagtailPage {
export interface CompetenceCertificateAssignment extends BaseCourseWagtailPage {
assignment_type: "CASEWORK" | "EDONIQ_TEST";
max_points: number;
learning_content: BaseCourseWagtailPage & {
circle: CircleLight;
};
learning_content:
| (BaseCourseWagtailPage & {
circle: CircleLight;
})
| null;
completion: {
id: string;
completion_status: AssignmentCompletionStatus;

View File

@ -97,8 +97,10 @@ def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
create_uk_fahrzeug_prep_assignment(course_id=COURSE_TEST_ID)
create_uk_condition_acceptance(course_id=COURSE_TEST_ID)
create_uk_reflection(course_id=COURSE_TEST_ID)
create_test_assignment_edoniq(
course_id=COURSE_TEST_ID, competence_certificate=competence_certificate
create_edoniq_test_assignment(
course_id=COURSE_TEST_ID,
title="Edoniq Wissens- und Verständisfragen - Circle Fahrzeug (Demo)",
competence_certificate=competence_certificate,
)
create_test_learning_path(include_uk=include_uk, include_vv=include_vv)
@ -661,8 +663,8 @@ def create_test_media_library():
)
def create_test_assignment_edoniq(
course_id=COURSE_TEST_ID, competence_certificate=None
def create_edoniq_test_assignment(
course_id=COURSE_TEST_ID, title="", competence_certificate=None
):
assignment_list_page = (
CoursePage.objects.get(course_id=course_id)
@ -674,9 +676,9 @@ def create_test_assignment_edoniq(
assignment = AssignmentFactory(
parent=assignment_list_page,
assignment_type="EDONIQ_TEST",
title="Edoniq Wissens- und Verständisfragen - Circle Fahrzeug (Demo)",
title=title,
competence_certificate=competence_certificate,
effort_required="ca. 5 Stunden",
effort_required="ca. 2 Stunden",
intro_text="Edoniq Test",
performance_objectives=[],
evaluation_document_url="",

View File

@ -5,6 +5,11 @@ from wagtail.rich_text import RichText
from wagtail_localize.models import LocaleSynchronization
from vbv_lernwelt.assignment.models import Assignment
from vbv_lernwelt.competence.factories import (
CompetenceCertificateFactory,
CompetenceCertificateListFactory,
CompetenceNaviPageFactory,
)
from vbv_lernwelt.core.admin import User
from vbv_lernwelt.course.consts import COURSE_UK, COURSE_UK_FR, COURSE_UK_IT
from vbv_lernwelt.course.creators.uk_circle_goals_de import UK_DE_CIRCLE_GOALS
@ -172,6 +177,26 @@ def create_uk_it_learning_path(course_id=COURSE_UK_IT, user=None, skip_locales=T
Page.objects.update(owner=user)
def create_competence_navi(course_id):
course_page = CoursePage.objects.get(course_id=course_id)
competence_navi_page = CompetenceNaviPageFactory(
title="KompetenzNavi",
parent=course_page,
)
competence_certificate_list = CompetenceCertificateListFactory(
title="Kompetenznachweise",
parent=competence_navi_page,
)
competence_certificate = CompetenceCertificateFactory(
title="Kompetenznachweis 1",
parent=competence_certificate_list,
)
return competence_certificate
def create_uk_circle(lp, title="Kickoff", show_test=True):
circle = CircleFactory(
title=title,
@ -688,6 +713,9 @@ In diesem Circle lernst du die wichtigsten Grundlagen bezüglich Versicherungswi
checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden und die Redlichkeitserklärung akzeptiert habe.",
test_url="https://exam.vbv-afa.ch/e-tutor/v4/user/course/pre_course_object?aid=1689096523730,2147466125",
extended_time_test_url="https://exam.vbv-afa.ch/e-tutor/v4/user/course/pre_course_object?aid=1691157696911,2147478636",
content_assignment=Assignment.objects.get(
title="Edoniq Wissens- und Verständisfragen - Circle Basis"
),
)
LearningUnitFactory(title="Reflexion", title_hidden=True, parent=circle)
LearningContentAssignmentFactory(

View File

@ -59,8 +59,12 @@ from vbv_lernwelt.course.consts import (
COURSE_VERSICHERUNGSVERMITTLERIN_ID,
COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID,
)
from vbv_lernwelt.course.creators.test_course import create_test_course
from vbv_lernwelt.course.creators.test_course import (
create_edoniq_test_assignment,
create_test_course,
)
from vbv_lernwelt.course.creators.uk_course import (
create_competence_navi,
create_uk_fr_learning_path,
create_uk_it_learning_path,
create_uk_learning_path,
@ -113,13 +117,13 @@ ADMIN_EMAILS = ["info@iterativ.ch", "admin"]
COURSE_TEST_ID,
COURSE_UK,
COURSE_VERSICHERUNGSVERMITTLERIN_ID,
COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID,
COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID,
COURSE_UK_FR,
COURSE_UK_IT,
COURSE_UK_TRAINING,
COURSE_UK_TRAINING_FR,
COURSE_UK_TRAINING_IT,
# COURSE_VERSICHERUNGSVERMITTLERIN_FR_ID,
# COURSE_VERSICHERUNGSVERMITTLERIN_IT_ID,
# COURSE_UK_FR,
# COURSE_UK_IT,
# COURSE_UK_TRAINING,
# COURSE_UK_TRAINING_FR,
# COURSE_UK_TRAINING_IT,
],
)
def command(course):
@ -259,12 +263,22 @@ def create_course_uk_de(course_id=COURSE_UK, lang="de"):
_assignment_list_page = AssignmentListPageFactory(
parent=course.coursepage,
)
competence_certificate = create_competence_navi(course_id=COURSE_UK)
create_uk_kickoff_prep_assignment(course_id=course_id)
create_uk_condition_acceptance(course_id=course_id)
create_uk_basis_prep_assignment(course_id=course_id)
create_uk_fahrzeug_casework(course_id=course_id)
create_uk_fahrzeug_casework(
course_id=course_id, competence_certificate=competence_certificate
)
create_uk_fahrzeug_prep_assignment(course_id=course_id)
create_uk_reflection(course_id=course_id)
create_edoniq_test_assignment(
course_id=course_id,
title="Edoniq Wissens- und Verständisfragen - Circle Basis",
competence_certificate=competence_certificate,
)
# learning path
create_uk_learning_path(course_id=course_id)

View File

@ -353,15 +353,15 @@ def create_circle_fahrzeug(lp, title="Fahrzeug"):
title="Praxisauftrag",
parent=circle,
)
LearningContentEdoniqTestFactory(
title="Fachcheck Fahrzeug",
parent=circle,
description=RichText(
"<p>Teste dein Wissen mit dem Fachcheck. Der Test kann nur einmal durchgeführt werden.</p>"
),
checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden und die Redlichkeitserklärung akzeptiert habe.",
content_url="https://s3.eu-central-1.amazonaws.com/myvbv-wbt.iterativ.ch/fachcheck-fahrzeug-xapi-LFv8YiyM/index.html#/",
)
# LearningContentEdoniqTestFactory(
# title="Fachcheck Fahrzeug",
# parent=circle,
# description=RichText(
# "<p>Teste dein Wissen mit dem Fachcheck. Der Test kann nur einmal durchgeführt werden.</p>"
# ),
# checkbox_text="Hiermit bestätige ich, dass ich die Anweisungen verstanden und die Redlichkeitserklärung akzeptiert habe.",
# content_url="https://s3.eu-central-1.amazonaws.com/myvbv-wbt.iterativ.ch/fachcheck-fahrzeug-xapi-LFv8YiyM/index.html#/",
# )
LearningContentAssignmentFactory(
title="Reflexion",
assignment_type="REFLECTION",

View File

@ -0,0 +1,24 @@
# Generated by Django 3.2.20 on 2023-09-06 12:01
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("assignment", "0007_auto_20230901_1112"),
("learnpath", "0004_auto_20230901_1112"),
]
operations = [
migrations.AlterField(
model_name="learningcontentedoniqtest",
name="content_assignment",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to="assignment.assignment",
),
),
]

View File

@ -345,6 +345,7 @@ class LearningContentEdoniqTest(LearningContent):
"assignment.Assignment",
# `null=True` is only set because of existing data...
null=True,
blank=True,
on_delete=models.SET_NULL,
)