Create Vorbereitungsauftrag Kickoff
This commit is contained in:
parent
1fa420a11b
commit
45161788cc
|
|
@ -1,3 +1,7 @@
|
||||||
|
from wagtail.blocks import StreamValue
|
||||||
|
from wagtail.blocks.list_block import ListBlock, ListValue
|
||||||
|
from wagtail.rich_text import RichText
|
||||||
|
|
||||||
from vbv_lernwelt.assignment.models import (
|
from vbv_lernwelt.assignment.models import (
|
||||||
AssignmentListPage,
|
AssignmentListPage,
|
||||||
AssignmentType,
|
AssignmentType,
|
||||||
|
|
@ -16,12 +20,9 @@ from vbv_lernwelt.assignment.tests.assignment_factories import (
|
||||||
from vbv_lernwelt.core.utils import replace_whitespace
|
from vbv_lernwelt.core.utils import replace_whitespace
|
||||||
from vbv_lernwelt.course.consts import COURSE_UK
|
from vbv_lernwelt.course.consts import COURSE_UK
|
||||||
from vbv_lernwelt.course.models import CoursePage
|
from vbv_lernwelt.course.models import CoursePage
|
||||||
from wagtail.blocks import StreamValue
|
|
||||||
from wagtail.blocks.list_block import ListBlock, ListValue
|
|
||||||
from wagtail.rich_text import RichText
|
|
||||||
|
|
||||||
|
|
||||||
def create_uk_casework(course_id=COURSE_UK):
|
def create_uk_fahrzeug_casework(course_id=COURSE_UK):
|
||||||
assignment_list_page = (
|
assignment_list_page = (
|
||||||
CoursePage.objects.get(course_id=course_id)
|
CoursePage.objects.get(course_id=course_id)
|
||||||
.get_children()
|
.get_children()
|
||||||
|
|
@ -465,7 +466,7 @@ def create_uk_casework(course_id=COURSE_UK):
|
||||||
return assignment
|
return assignment
|
||||||
|
|
||||||
|
|
||||||
def create_uk_prep_assignment(course_id=COURSE_UK):
|
def create_uk_fahrzeug_prep_assignment(course_id=COURSE_UK):
|
||||||
assignment_list_page = (
|
assignment_list_page = (
|
||||||
CoursePage.objects.get(course_id=course_id)
|
CoursePage.objects.get(course_id=course_id)
|
||||||
.get_children()
|
.get_children()
|
||||||
|
|
@ -489,7 +490,7 @@ def create_uk_prep_assignment(course_id=COURSE_UK):
|
||||||
<li>d2pv.ük4: Sie erläutern die Prozesse und Abläufe im privaten Versicherungsbereich. (K2)</li>
|
<li>d2pv.ük4: Sie erläutern die Prozesse und Abläufe im privaten Versicherungsbereich. (K2)</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Handlungskompetenz e4: Betriebsbezogene Inhalte multimedial aufbereiten<br/>
|
Handlungskompetenz e4: Betriebsbezogene Inhalte multimedial aufbereiten<br/>
|
||||||
Arbeitssituation 1: Charakteristiken der Branche und Stärken des Betriebs einbringen<br/>
|
Arbeitssituation 1: Charakteristiken der Branche und Stärken des Betriebs einbringen<br/>
|
||||||
|
|
@ -499,10 +500,10 @@ def create_uk_prep_assignment(course_id=COURSE_UK):
|
||||||
<li>e4.pv.ük4: Sie erläutern die Grundlagen der Produkte von Privatversicherungen. (K2)</li>
|
<li>e4.pv.ük4: Sie erläutern die Grundlagen der Produkte von Privatversicherungen. (K2)</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Ausgangslage</h3>
|
<h3>Ausgangslage</h3>
|
||||||
<p>
|
<p>
|
||||||
Stell dir vor, du hast die Autoprüfung abgeschlossen und nun kann es endlich losgehen mit deiner Mobilität.
|
Stell dir vor, du hast die Autoprüfung abgeschlossen und nun kann es endlich losgehen mit deiner Mobilität.
|
||||||
Welches wird dein erstes eigenes Auto sein? Dieses Auto möchtest du natürlich auch schützen und richtig
|
Welches wird dein erstes eigenes Auto sein? Dieses Auto möchtest du natürlich auch schützen und richtig
|
||||||
versichern.
|
versichern.
|
||||||
</p>
|
</p>
|
||||||
|
|
@ -780,6 +781,160 @@ def create_uk_prep_assignment(course_id=COURSE_UK):
|
||||||
return assignment
|
return assignment
|
||||||
|
|
||||||
|
|
||||||
|
def create_uk_kickoff_prep_assignment(course_id=COURSE_UK):
|
||||||
|
assignment_list_page = (
|
||||||
|
CoursePage.objects.get(course_id=course_id)
|
||||||
|
.get_children()
|
||||||
|
.exact_type(AssignmentListPage)
|
||||||
|
.first()
|
||||||
|
)
|
||||||
|
|
||||||
|
assignment = AssignmentFactory(
|
||||||
|
parent=assignment_list_page,
|
||||||
|
assignment_type=AssignmentType.PREP_ASSIGNMENT.name,
|
||||||
|
title="Kickoff - Versicherungswirtschaft",
|
||||||
|
effort_required="ca. 2 Stunden",
|
||||||
|
intro_text=replace_whitespace(
|
||||||
|
"""
|
||||||
|
<h3>Handlungskompetenzen, Arbeitssituationen & Leistungsziele</h3>
|
||||||
|
<p>
|
||||||
|
Handlungskompetenz d2: Informations- und Beratungsgespräch mit Kunden oder Lieferanten führen<br/>
|
||||||
|
Arbeitssituation 4: Kunden beraten und dazugehörige Prozesse abwickeln<br/>
|
||||||
|
<ul>
|
||||||
|
<li>d2.pv.ük1: Sie beschreiben die wichtigsten gesetzlichen Grundlagen im Versicherungsbereich umfassend</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Handlungskompetenz c3: Betriebliche Prozesse dokumentieren, koordinieren und umsetzen<br/>
|
||||||
|
Arbeitssituation 5: Anträge verarbeiten, Verträge gestalten, Produkte entwickeln und pflegen<br/>
|
||||||
|
<ul>
|
||||||
|
<li>c3.pv.ük6: Sie nennen die gängigen Grundsätze bei der Gestaltung von Produkten und Dienstleistungen im Versicherungsbereich (K1)</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Ausgangslage</h3>
|
||||||
|
<p>
|
||||||
|
Das Leben hat nicht nur Sonnenseiten, es birgt auch Risiken in sich. So können wir schon morgen einen
|
||||||
|
Unfall haben oder schwer erkranken. Oder ein Haus wird durch ein Hagelzug ziemlich beschädigt. Vor
|
||||||
|
solchen Risiken kann sich niemand vollständig schützen. Jedoch können wir uns gegen den finanziellen
|
||||||
|
Schaden absichern. Diese Art von Schutz bieten Versicherungen.<br/>
|
||||||
|
In dieser Sequenz beschäftigen wir uns damit, das eigentlich eine Versicherung ausmacht.
|
||||||
|
</p>
|
||||||
|
"""
|
||||||
|
),
|
||||||
|
performance_objectives=[],
|
||||||
|
)
|
||||||
|
|
||||||
|
assignment.tasks = []
|
||||||
|
assignment.tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
TaskBlockFactory(
|
||||||
|
title="Teilaufgabe 1: Verschaffe dir einen ersten Überblick zum Thema.",
|
||||||
|
# it is hard to create a StreamValue programmatically, we have to
|
||||||
|
# create a `StreamValue` manually. Ask Daniel and/or Ramon
|
||||||
|
content=StreamValue(
|
||||||
|
TaskContentStreamBlock(),
|
||||||
|
stream_data=[
|
||||||
|
(
|
||||||
|
"explanation",
|
||||||
|
ExplanationBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
'Schaue dazu das folgende Video: <a href="https://www.youtube.com/watch?v=NgttivRt6Fo&list=PL1caXvEGRT26oPfYc2C7CbYrldQQglzFI&index=2" target="_blank"> Wie funktioniert eine Versicherung? – Einfach erklärt </a>'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_confirmation",
|
||||||
|
ExplanationBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Ja, ich habe das Video angeschaut und verstanden."
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
assignment.tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
TaskBlockFactory(
|
||||||
|
title="Teilaufgabe 2: «Idee Versicherung» lesen",
|
||||||
|
# it is hard to create a StreamValue programmatically, we have to
|
||||||
|
# create a `StreamValue` manually. Ask Daniel and/or Ramon
|
||||||
|
content=StreamValue(
|
||||||
|
TaskContentStreamBlock(),
|
||||||
|
stream_data=[
|
||||||
|
(
|
||||||
|
"explanation",
|
||||||
|
ExplanationBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Lese und bearbeite im Buch «Idee Versicherung» die Seiten 12 bis 30."
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_confirmation",
|
||||||
|
ExplanationBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
"Ja, ich habe die Seiten gelesen und verstanden."
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
assignment.tasks.append(
|
||||||
|
(
|
||||||
|
"task",
|
||||||
|
TaskBlockFactory(
|
||||||
|
title="Teilaufgabe 3: Skizze erstellen",
|
||||||
|
# it is hard to create a StreamValue programmatically, we have to
|
||||||
|
# create a `StreamValue` manually. Ask Daniel and/or Ramon
|
||||||
|
content=StreamValue(
|
||||||
|
TaskContentStreamBlock(),
|
||||||
|
stream_data=[
|
||||||
|
(
|
||||||
|
"explanation",
|
||||||
|
ExplanationBlockFactory(
|
||||||
|
text=RichText(
|
||||||
|
replace_whitespace(
|
||||||
|
"""
|
||||||
|
<p>
|
||||||
|
Erstelle aufgrund des Gelesenen eine Skizze, welche für dich das Grundprinzip einer Versicherung darstellt.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Nimm diese Skizze mit in den Unterricht.
|
||||||
|
</p>
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"user_confirmation",
|
||||||
|
ExplanationBlockFactory(
|
||||||
|
text=RichText("Ja, ich habe die Skizze erstellt.")
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
assignment.save()
|
||||||
|
|
||||||
|
return assignment
|
||||||
|
|
||||||
|
|
||||||
def create_uk_reflection(course_id=COURSE_UK, circle_title="Fahrzeug"):
|
def create_uk_reflection(course_id=COURSE_UK, circle_title="Fahrzeug"):
|
||||||
assignment_list_page = (
|
assignment_list_page = (
|
||||||
CoursePage.objects.get(course_id=course_id)
|
CoursePage.objects.get(course_id=course_id)
|
||||||
|
|
@ -796,10 +951,10 @@ def create_uk_reflection(course_id=COURSE_UK, circle_title="Fahrzeug"):
|
||||||
intro_text=replace_whitespace(
|
intro_text=replace_whitespace(
|
||||||
"""
|
"""
|
||||||
<p>
|
<p>
|
||||||
Du hast in diesem Circle viele neue Inhalte und Inputs erhalten.
|
Du hast in diesem Circle viele neue Inhalte und Inputs erhalten.
|
||||||
Nun ist es Zeit, nochmals auf dein Kompetenzprofil zu schauen.
|
Nun ist es Zeit, nochmals auf dein Kompetenzprofil zu schauen.
|
||||||
Das Beantworten von Reflexionsfragen hilft dir den eigenen Lern- und Denkprozess sichtbar und begreifbar zu machen.
|
Das Beantworten von Reflexionsfragen hilft dir den eigenen Lern- und Denkprozess sichtbar und begreifbar zu machen.
|
||||||
Es deckt deine persönlichen Stärken und Schwächen während der Erarbeitung auf und hilft dir, dich laufend zu verbessern.
|
Es deckt deine persönlichen Stärken und Schwächen während der Erarbeitung auf und hilft dir, dich laufend zu verbessern.
|
||||||
</p>
|
</p>
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@ import json
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from rest_framework.test import APITestCase
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
from vbv_lernwelt.assignment.creators.create_assignments import create_uk_casework
|
from vbv_lernwelt.assignment.creators.create_assignments import (
|
||||||
|
create_uk_fahrzeug_casework,
|
||||||
|
)
|
||||||
from vbv_lernwelt.assignment.models import (
|
from vbv_lernwelt.assignment.models import (
|
||||||
AssignmentCompletion,
|
AssignmentCompletion,
|
||||||
AssignmentCompletionAuditLog,
|
AssignmentCompletionAuditLog,
|
||||||
|
|
@ -20,7 +22,7 @@ class AssignmentApiTestCase(APITestCase):
|
||||||
def setUp(self) -> None:
|
def setUp(self) -> None:
|
||||||
create_default_users()
|
create_default_users()
|
||||||
create_test_course(include_vv=False)
|
create_test_course(include_vv=False)
|
||||||
self.assignment = create_uk_casework(course_id=COURSE_TEST_ID)
|
self.assignment = create_uk_fahrzeug_casework(course_id=COURSE_TEST_ID)
|
||||||
self.assignment_subtasks = self.assignment.filter_user_subtasks()
|
self.assignment_subtasks = self.assignment.filter_user_subtasks()
|
||||||
|
|
||||||
self.cs = CourseSession.objects.create(
|
self.cs = CourseSession.objects.create(
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ from wagtail.models import Site
|
||||||
from wagtail.rich_text import RichText
|
from wagtail.rich_text import RichText
|
||||||
|
|
||||||
from vbv_lernwelt.assignment.creators.create_assignments import (
|
from vbv_lernwelt.assignment.creators.create_assignments import (
|
||||||
create_uk_casework,
|
create_uk_fahrzeug_casework,
|
||||||
create_uk_prep_assignment,
|
create_uk_fahrzeug_prep_assignment,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.assignment.models import Assignment
|
from vbv_lernwelt.assignment.models import Assignment
|
||||||
from vbv_lernwelt.assignment.services import update_assignment_completion
|
from vbv_lernwelt.assignment.services import update_assignment_completion
|
||||||
|
|
@ -72,8 +72,8 @@ def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
|
||||||
_assignment_list_page = AssignmentListPageFactory(
|
_assignment_list_page = AssignmentListPageFactory(
|
||||||
parent=course_page,
|
parent=course_page,
|
||||||
)
|
)
|
||||||
create_uk_casework(course_id=COURSE_TEST_ID)
|
create_uk_fahrzeug_casework(course_id=COURSE_TEST_ID)
|
||||||
create_uk_prep_assignment(course_id=COURSE_TEST_ID)
|
create_uk_fahrzeug_prep_assignment(course_id=COURSE_TEST_ID)
|
||||||
|
|
||||||
create_test_learning_path(include_uk=include_uk, include_vv=include_vv)
|
create_test_learning_path(include_uk=include_uk, include_vv=include_vv)
|
||||||
create_test_media_library()
|
create_test_media_library()
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ from vbv_lernwelt.learnpath.tests.learning_path_factories import (
|
||||||
LearningUnitFactory,
|
LearningUnitFactory,
|
||||||
TopicFactory,
|
TopicFactory,
|
||||||
)
|
)
|
||||||
|
from vbv_lernwelt.media_library.tests.media_library_factories import (
|
||||||
|
LearnMediaBlockFactory,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def create_uk_learning_path(course_id=COURSE_UK, user=None, skip_locales=True):
|
def create_uk_learning_path(course_id=COURSE_UK, user=None, skip_locales=True):
|
||||||
|
|
@ -230,20 +233,56 @@ In diesem Circle erfährst du wie die überbetrieblichen Kurse aufgebaut sind. Z
|
||||||
title=f"Allgemeines zu Versicherungen",
|
title=f"Allgemeines zu Versicherungen",
|
||||||
parent=circle,
|
parent=circle,
|
||||||
description=RichText(
|
description=RichText(
|
||||||
f"<p>In der Mediathek unter dem Handlungsfeld «{title}» findest du alle relevanten Ressourcen für deine Fachkompetenzen.</p>"
|
f"<p>In der Mediathek unter «Allgemeines zu Versicherungen» findest du alle relevanten Ressourcen für deine Fachkompetenzen.</p>"
|
||||||
f"<p>Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.</p>"
|
f"<p>Wir empfehlen dir vor der Absolvierung der weiteren Lerneinheiten dich in die Thematik einzulesen.</p>"
|
||||||
),
|
),
|
||||||
content_url=f"/course/überbetriebliche-kurse/media/category/{slugify(title)}",
|
content_url=f"/course/überbetriebliche-kurse/media",
|
||||||
)
|
)
|
||||||
LearningContentPlaceholderFactory(
|
LearningContentAssignmentFactory(
|
||||||
title="Vorbereitungsauftrag",
|
title="Versicherungswirtschaft",
|
||||||
|
assignment_type="PREP_ASSIGNMENT",
|
||||||
parent=circle,
|
parent=circle,
|
||||||
)
|
content_assignment=Assignment.objects.get(
|
||||||
|
slug__startswith=f"überbetriebliche-kurse-assignment-kickoff-versicherungswirtschaft"
|
||||||
|
),
|
||||||
|
),
|
||||||
LearningSequenceFactory(title="Training", parent=circle)
|
LearningSequenceFactory(title="Training", parent=circle)
|
||||||
LearningUnitFactory(title="Unterlagen", parent=circle)
|
LearningUnitFactory(title="Unterlagen", parent=circle)
|
||||||
LearningContentPlaceholderFactory(
|
LearningContentDocumentListFactory(
|
||||||
title="Unterlagen für den Unterricht",
|
title="Unterlagen für den Unterricht",
|
||||||
parent=circle,
|
parent=circle,
|
||||||
|
documents=[
|
||||||
|
(
|
||||||
|
"document",
|
||||||
|
LearnMediaBlockFactory(
|
||||||
|
title="Präsentation 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",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"document",
|
||||||
|
LearnMediaBlockFactory(
|
||||||
|
title="Präsentation 1b",
|
||||||
|
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",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"document",
|
||||||
|
LearnMediaBlockFactory(
|
||||||
|
title="Arbeitsblatt Einteilung der Versicherungen",
|
||||||
|
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",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
LearningUnitFactory(title="Präsenzkurs", parent=circle)
|
LearningUnitFactory(title="Präsenzkurs", parent=circle)
|
||||||
LearningContentAttendanceCourseFactory(
|
LearningContentAttendanceCourseFactory(
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,10 @@ import random
|
||||||
import djclick as click
|
import djclick as click
|
||||||
|
|
||||||
from vbv_lernwelt.assignment.creators.create_assignments import (
|
from vbv_lernwelt.assignment.creators.create_assignments import (
|
||||||
create_uk_casework,
|
create_uk_fahrzeug_casework,
|
||||||
create_uk_prep_assignment,
|
create_uk_fahrzeug_prep_assignment,
|
||||||
create_uk_reflection,
|
create_uk_reflection,
|
||||||
|
create_uk_kickoff_prep_assignment,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.assignment.models import Assignment
|
from vbv_lernwelt.assignment.models import Assignment
|
||||||
from vbv_lernwelt.assignment.services import update_assignment_completion
|
from vbv_lernwelt.assignment.services import update_assignment_completion
|
||||||
|
|
@ -169,8 +170,9 @@ def create_course_uk_de():
|
||||||
_assignment_list_page = AssignmentListPageFactory(
|
_assignment_list_page = AssignmentListPageFactory(
|
||||||
parent=course.coursepage,
|
parent=course.coursepage,
|
||||||
)
|
)
|
||||||
create_uk_casework(course_id=COURSE_UK)
|
create_uk_kickoff_prep_assignment(course_id=COURSE_UK)
|
||||||
create_uk_prep_assignment(course_id=COURSE_UK)
|
create_uk_fahrzeug_casework(course_id=COURSE_UK)
|
||||||
|
create_uk_fahrzeug_prep_assignment(course_id=COURSE_UK)
|
||||||
create_uk_reflection(course_id=COURSE_UK)
|
create_uk_reflection(course_id=COURSE_UK)
|
||||||
|
|
||||||
# learning path
|
# learning path
|
||||||
|
|
@ -427,8 +429,8 @@ def create_course_training_de():
|
||||||
_assignment_list_page = AssignmentListPageFactory(
|
_assignment_list_page = AssignmentListPageFactory(
|
||||||
parent=course.coursepage,
|
parent=course.coursepage,
|
||||||
)
|
)
|
||||||
create_uk_casework(course_id=COURSE_UK_TRAINING)
|
create_uk_fahrzeug_casework(course_id=COURSE_UK_TRAINING)
|
||||||
create_uk_prep_assignment(course_id=COURSE_UK_TRAINING)
|
create_uk_fahrzeug_prep_assignment(course_id=COURSE_UK_TRAINING)
|
||||||
create_uk_reflection(course_id=COURSE_UK_TRAINING)
|
create_uk_reflection(course_id=COURSE_UK_TRAINING)
|
||||||
|
|
||||||
create_uk_training_learning_path(course_id=COURSE_UK_TRAINING)
|
create_uk_training_learning_path(course_id=COURSE_UK_TRAINING)
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue