899 lines
37 KiB
Python
899 lines
37 KiB
Python
from vbv_lernwelt.assignment.models import (
|
|
EvaluationSubTaskBlock,
|
|
TaskContentStreamBlock,
|
|
)
|
|
from vbv_lernwelt.assignment.tests.assignment_factories import (
|
|
AssignmentFactory,
|
|
AssignmentListPageFactory,
|
|
EvaluationSubTaskBlockFactory,
|
|
EvaluationTaskBlockFactory,
|
|
ExplanationBlockFactory,
|
|
PerformanceObjectiveBlockFactory,
|
|
TaskBlockFactory,
|
|
UserTextInputBlockFactory,
|
|
)
|
|
from vbv_lernwelt.core.utils import replace_whitespace
|
|
from vbv_lernwelt.course.consts import COURSE_TEST_ID, COURSE_UK
|
|
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_assignments(course_id=COURSE_UK):
|
|
course_page = CoursePage.objects.get(course_id=course_id)
|
|
assignment_page = AssignmentListPageFactory(
|
|
parent=course_page,
|
|
)
|
|
|
|
assignment = AssignmentFactory(
|
|
parent=assignment_page,
|
|
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
|
|
effort_required="ca. 5 Stunden",
|
|
starting_position=replace_whitespace(
|
|
"""
|
|
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
|
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
|
und bittet dich als Versicherungsprofi, diese kritisch zu überprüfen und ihr ggf. Anpassungsvorschläge
|
|
zu unterbreiten. In diesem Kompetenznachweis kannst du nun dein Wissen und Können im Bereich
|
|
der Motorfahrzeugversicherung unter Beweis stellen.
|
|
"""
|
|
),
|
|
performance_objectives=[
|
|
(
|
|
"performance_objective",
|
|
PerformanceObjectiveBlockFactory(
|
|
text="Sie erläutern die Leistungen und Produkte im Versicherungsbereich."
|
|
),
|
|
),
|
|
(
|
|
"performance_objective",
|
|
PerformanceObjectiveBlockFactory(
|
|
text="Sie beurteilen gängige Versicherungslösungen fachkundig."
|
|
),
|
|
),
|
|
],
|
|
evaluation_document_url="/static/media/assignments/UK_03_09_NACH_KN_Beurteilungsraster.pdf",
|
|
evaluation_description="Diese geleitete Fallarbeit wird auf Grund des folgenden Beurteilungsintrument bewertet.",
|
|
)
|
|
|
|
assignment.evaluation_tasks = []
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Ausgangslage des Auftrags",
|
|
description=RichText(
|
|
"Beschreibt der/die Lernende die Ausgangslage des Auftrags vollständig?"
|
|
),
|
|
max_points=6,
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage des Auftrag ist vollständig beschrieben.",
|
|
description=RichText(
|
|
replace_whitespace(
|
|
"""
|
|
<ul>
|
|
<li>Worum geht es? Was ist die Aufgabe?</li>
|
|
<li>Sind das Kundenprofil und die Kundenbeziehung vollständig und nachvollziehbar dargestellt?</li>
|
|
<li>Ist das Alter des Fahrzeugs dokumentiert?</li>
|
|
<li>Welche Ressourcen stehen zur Verfügung?</li>
|
|
</ul>
|
|
"""
|
|
)
|
|
),
|
|
points=6,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage ist grösstenteils vollständig beschrieben.",
|
|
points=4,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage ist unvollständig - nur 2 Punkte wurden beschrieben.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage des Auftrag ist unvollständig - es fehlen mehr als 2 Punkte in der Beschreibung.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Inhaltsanalyse und Struktur",
|
|
max_points=6,
|
|
description=RichText(
|
|
"Sind die Deckungen der Police vollständig und nachvollziehbar dokumentiert?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse beinhaltet alle in der Police vorhandenen Deckungen und ist logisch aufgebaut.",
|
|
points=6,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse beinhaltet die meisten vorhandenen Deckungen in der Police und ist grösstenteils logisch aufgebaut.",
|
|
points=4,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse ist unvollständig (es fehlen mehr als 3 Deckungen) und der rote Faden ist nicht erkennbar.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse ist insgesamt nicht nachvollziehbar und es fehlen einige Deckungen.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Sinnvolle Empfehlungen",
|
|
max_points=6,
|
|
description=RichText(
|
|
"Leitet die lernende Person sinnvolle und geeignete Empfehlungen ab?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind durchgängig sinnvoll und nachvollziehbar begründet.",
|
|
points=6,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind grösstenteils sinnvoll und nachvollziehbar begründet.",
|
|
points=4,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind wenig sinnvoll und unvollständig begründet.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind weder sinnvoll nch nachvollziehbar begründet.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Qualität der Reflexion",
|
|
max_points=3,
|
|
description=RichText(
|
|
"Reflektiert die lernende Person die Durchführung der geleiteten Fallarbeit?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst nachvollziehbare positive wie negative Aspekte.",
|
|
points=3,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst grösstenteils nachvollziehbare positive wie negative Aspekte.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion ist unvollständig.",
|
|
points=1,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion bezieht sich nicht auf die geleitete Fallarbeit.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Eignung der Learnings",
|
|
max_points=3,
|
|
description=RichText(
|
|
"Leitet die lernende Person geeignete Learnings aus der Reflexion ab?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
|
points=3,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich grösstenteils auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich teilweise auf die geleitete Fallarbeit und sind inhaltlich wenig sinnvoll.",
|
|
points=1,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich nicht auf die geleitete Fallarbeit.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
|
|
assignment.tasks = []
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 1: Beispiel einer Versicherungspolice finden",
|
|
# 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(
|
|
"Bitte jemand aus deiner Familie oder deinem Freundeskreis darum, dir seine/ihre Motorfahrzeugversicherungspolice zur Verfügung zu stellen."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_confirmation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Ja, ich habe Motorfahrzeugversicherungspolice von jemandem aus meiner Familie oder meinem Freundeskreis erhalten."
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 2: Kundensituation und Ausgangslage",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
replace_whitespace(
|
|
"""
|
|
Erläutere die Kundensituation und die Ausgangslage.
|
|
<ul>
|
|
<li>Hast du alle Informationen, die du für den Policen-Check benötigst?</li>
|
|
<li>Halte die wichtigsten Eckwerte des aktuellen Versicherungsverhältnisse in deiner Dokumentation fest (z.B wie lang wo versichert, Alter des Fahrzeugs, Kundenprofil, etc.</li>
|
|
</ul>
|
|
"""
|
|
)
|
|
)
|
|
),
|
|
),
|
|
("user_text_input", UserTextInputBlockFactory()),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 3: Aktuelle Versicherung",
|
|
# TODO: add document upload
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Zeige nun detailliert auf, wie dein Kundenbeispiel momentan versichert ist."
|
|
)
|
|
),
|
|
),
|
|
("user_text_input", UserTextInputBlockFactory()),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 4: Deine Empfehlungen",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Erarbeite nun basierend auf deinen Erkenntnissen eine Empfehlung für die Person."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Gibt es zusätzliche Deckungen, die du der Person empfehlen würdest? Begründe deine Empfehlung"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Gibt es Deckungen, die du streichen würdest? Begründe deine Empfehlung."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Wenn die Person gemäss deiner Einschätzung genau richtig versichert ist, argumentiere, warum dies der Fall ist."
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 5: Reflexion",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Reflektiere dein Handeln und halte deine Erkenntnisse fest. Frage dich dabei:"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"War die Bearbeitung dieser geleiteten Fallarbeit erfolgreich? Begründe deine Einschätzung."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was ist dir bei der Bearbeitung des Auftrags gut gelungen?"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was ist dir bei der Bearbeitung des Auftrags weniger gut gelungen?"
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 6: Learnings",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Leite aus der Teilaufgabe 5 deine persönlichen Learnings ab."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was würdest du beim nächsten Mal anders machen?"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was hast du beim Bearbeiten des Auftrags Neues gelernt?"
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.save()
|
|
|
|
return assignment
|
|
|
|
|
|
def create_test_assignment(course_id=COURSE_TEST_ID):
|
|
course_page = CoursePage.objects.get(course_id=course_id)
|
|
assignment_page = AssignmentListPageFactory(
|
|
parent=course_page,
|
|
)
|
|
|
|
assignment = AssignmentFactory(
|
|
parent=assignment_page,
|
|
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
|
|
effort_required="ca. 5 Stunden",
|
|
starting_position=replace_whitespace(
|
|
"""
|
|
Jemand aus deiner Familie oder aus deinem Freundeskreis möchte sein
|
|
Versicherungspolice überprüfen lassen. Diese Person kommt nun mit ihrer Police auf dich zu
|
|
und bittet dich als Versicherungsprofi, diese kritisch zu überprüfen und ihr ggf. Anpassungsvorschläge
|
|
zu unterbreiten. In diesem Kompetenznachweis kannst du nun dein Wissen und Können im Bereich
|
|
der Motorfahrzeugversicherung unter Beweis stellen.
|
|
"""
|
|
),
|
|
performance_objectives=[
|
|
(
|
|
"performance_objective",
|
|
PerformanceObjectiveBlockFactory(
|
|
text="Sie erläutern die Leistungen und Produkte im Versicherungsbereich."
|
|
),
|
|
),
|
|
(
|
|
"performance_objective",
|
|
PerformanceObjectiveBlockFactory(
|
|
text="Sie beurteilen gängige Versicherungslösungen fachkundig."
|
|
),
|
|
),
|
|
],
|
|
evaluation_document_url="/static/media/assignments/UK_03_09_NACH_KN_Beurteilungsraster.pdf",
|
|
evaluation_description="Diese geleitete Fallarbeit wird auf Grund des folgenden Beurteilungsintrument bewertet.",
|
|
)
|
|
|
|
assignment.evaluation_tasks = []
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Ausgangslage des Auftrags",
|
|
description=RichText(
|
|
"Beschreibt der/die Lernende die Ausgangslage des Auftrags vollständig?"
|
|
),
|
|
max_points=6,
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage des Auftrag ist vollständig beschrieben.",
|
|
description=RichText(
|
|
replace_whitespace(
|
|
"""
|
|
<ul>
|
|
<li>Worum geht es? Was ist die Aufgabe?</li>
|
|
<li>Sind das Kundenprofil und die Kundenbeziehung vollständig und nachvollziehbar dargestellt?</li>
|
|
<li>Ist das Alter des Fahrzeugs dokumentiert?</li>
|
|
<li>Welche Ressourcen stehen zur Verfügung?</li>
|
|
</ul>
|
|
"""
|
|
)
|
|
),
|
|
points=6,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage ist grösstenteils vollständig beschrieben.",
|
|
points=4,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage ist unvollständig - nur 2 Punkte wurden beschrieben.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Ausgangslage des Auftrag ist unvollständig - es fehlen mehr als 2 Punkte in der Beschreibung.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Inhaltsanalyse und Struktur",
|
|
max_points=6,
|
|
description=RichText(
|
|
"Sind die Deckungen der Police vollständig und nachvollziehbar dokumentiert?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse beinhaltet alle in der Police vorhandenen Deckungen und ist logisch aufgebaut.",
|
|
points=6,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse beinhaltet die meisten vorhandenen Deckungen in der Police und ist grösstenteils logisch aufgebaut.",
|
|
points=4,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse ist unvollständig (es fehlen mehr als 3 Deckungen) und der rote Faden ist nicht erkennbar.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Analyse ist insgesamt nicht nachvollziehbar und es fehlen einige Deckungen.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Sinnvolle Empfehlungen",
|
|
max_points=6,
|
|
description=RichText(
|
|
"Leitet die lernende Person sinnvolle und geeignete Empfehlungen ab?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind durchgängig sinnvoll und nachvollziehbar begründet.",
|
|
points=6,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind grösstenteils sinnvoll und nachvollziehbar begründet.",
|
|
points=4,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind wenig sinnvoll und unvollständig begründet.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Empfehlungen sind weder sinnvoll nch nachvollziehbar begründet.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Qualität der Reflexion",
|
|
max_points=3,
|
|
description=RichText(
|
|
"Reflektiert die lernende Person die Durchführung der geleiteten Fallarbeit?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst nachvollziehbare positive wie negative Aspekte.",
|
|
points=3,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion bezieht sich auf die geleitete Fallarbeit und umfasst grösstenteils nachvollziehbare positive wie negative Aspekte.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion ist unvollständig.",
|
|
points=1,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Reflexion bezieht sich nicht auf die geleitete Fallarbeit.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
assignment.evaluation_tasks.append(
|
|
(
|
|
"task",
|
|
EvaluationTaskBlockFactory(
|
|
title="Eignung der Learnings",
|
|
max_points=3,
|
|
description=RichText(
|
|
"Leitet die lernende Person geeignete Learnings aus der Reflexion ab?"
|
|
),
|
|
sub_tasks=ListValue(
|
|
ListBlock(EvaluationSubTaskBlock()),
|
|
values=[
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
|
points=3,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich grösstenteils auf die geleitete Fallarbeit und sind inhaltlich sinnvoll.",
|
|
points=2,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich teilweise auf die geleitete Fallarbeit und sind inhaltlich wenig sinnvoll.",
|
|
points=1,
|
|
),
|
|
EvaluationSubTaskBlockFactory(
|
|
title="Die Learnings beziehen sich nicht auf die geleitete Fallarbeit.",
|
|
points=0,
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
)
|
|
|
|
assignment.tasks = []
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 1: Beispiel einer Versicherungspolice finden",
|
|
# 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(
|
|
"Bitte jemand aus deiner Familie oder deinem Freundeskreis darum, dir seine/ihre Motorfahrzeugversicherungspolice zur Verfügung zu stellen."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_confirmation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Ja, ich habe Motorfahrzeugversicherungspolice von jemandem aus meiner Familie oder meinem Freundeskreis erhalten."
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 2: Kundensituation und Ausgangslage",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
replace_whitespace(
|
|
"""
|
|
Erläutere die Kundensituation und die Ausgangslage.
|
|
<ul>
|
|
<li>Hast du alle Informationen, die du für den Policen-Check benötigst?</li>
|
|
<li>Halte die wichtigsten Eckwerte des aktuellen Versicherungsverhältnisse in deiner Dokumentation fest (z.B wie lang wo versichert, Alter des Fahrzeugs, Kundenprofil, etc.</li>
|
|
</ul>
|
|
"""
|
|
)
|
|
)
|
|
),
|
|
),
|
|
("user_text_input", UserTextInputBlockFactory()),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 3: Aktuelle Versicherung",
|
|
# TODO: add document upload
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Zeige nun detailliert auf, wie dein Kundenbeispiel momentan versichert ist."
|
|
)
|
|
),
|
|
),
|
|
("user_text_input", UserTextInputBlockFactory()),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 4: Deine Empfehlungen",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Erarbeite nun basierend auf deinen Erkenntnissen eine Empfehlung für die Person."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Gibt es zusätzliche Deckungen, die du der Person empfehlen würdest? Begründe deine Empfehlung"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Gibt es Deckungen, die du streichen würdest? Begründe deine Empfehlung."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Wenn die Person gemäss deiner Einschätzung genau richtig versichert ist, argumentiere, warum dies der Fall ist."
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 5: Reflexion",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Reflektiere dein Handeln und halte deine Erkenntnisse fest. Frage dich dabei:"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"War die Bearbeitung dieser geleiteten Fallarbeit erfolgreich? Begründe deine Einschätzung."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was ist dir bei der Bearbeitung des Auftrags gut gelungen?"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was ist dir bei der Bearbeitung des Auftrags weniger gut gelungen?"
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.tasks.append(
|
|
(
|
|
"task",
|
|
TaskBlockFactory(
|
|
title="Teilaufgabe 6: Learnings",
|
|
content=StreamValue(
|
|
TaskContentStreamBlock(),
|
|
stream_data=[
|
|
(
|
|
"explanation",
|
|
ExplanationBlockFactory(
|
|
text=RichText(
|
|
"Leite aus der Teilaufgabe 5 deine persönlichen Learnings ab."
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was würdest du beim nächsten Mal anders machen?"
|
|
)
|
|
),
|
|
),
|
|
(
|
|
"user_text_input",
|
|
UserTextInputBlockFactory(
|
|
text=RichText(
|
|
"Was hast du beim Bearbeiten des Auftrags Neues gelernt?"
|
|
)
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
assignment.save()
|
|
|
|
return assignment
|