vbv/server/vbv_lernwelt/assignment/creators/create_assignments.py

1408 lines
57 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from vbv_lernwelt.assignment.models import (
AssignmentListPage,
AssignmentType,
EvaluationSubTaskBlock,
TaskContentStreamBlock,
)
from vbv_lernwelt.assignment.tests.assignment_factories import (
AssignmentFactory,
EvaluationSubTaskBlockFactory,
EvaluationTaskBlockFactory,
ExplanationBlockFactory,
PerformanceObjectiveBlockFactory,
TaskBlockFactory,
UserTextInputBlockFactory,
)
from vbv_lernwelt.core.utils import replace_whitespace
from vbv_lernwelt.course.consts import 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_fahrzeug_casework(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,
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
effort_required="ca. 5 Stunden",
intro_text=replace_whitespace(
"""
<h3>Ausgangslage</h3>
<p>
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.
</p>
"""
),
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_uk_fahrzeug_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="Fahrzeug - Mein erstes Auto",
effort_required="ca. 3 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.ük3: Sie erläutern die Leistungen und Produkte im Versicherungsbereich. (K2)</li>
<li>d2pv.ük4: Sie erläutern die Prozesse und Abläufe im privaten Versicherungsbereich. (K2)</li>
</ul>
</p>
<p>
Handlungskompetenz e4: Betriebsbezogene Inhalte multimedial aufbereiten<br/>
Arbeitssituation 1: Charakteristiken der Branche und Stärken des Betriebs einbringen<br/>
<ul>
<li>e4.pv.ük1: Sie erläutern die Dienstleistungen des Betriebs. (K2)</li>
<li>e4.pv.ük2: Sie unterscheiden Mitbewerber in der privaten Versicherungsbranche anhand der relevanten Kriterien.(K2)</li>
<li>e4.pv.ük4: Sie erläutern die Grundlagen der Produkte von Privatversicherungen. (K2)</li>
</ul>
</p>
<h3>Ausgangslage</h3>
<p>
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
versichern.
</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=GY2VRYyhwjM" target="_blank">Wie funktioniert eine Autoversicherung? 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: Kapitel «Haftpflichtrecht und Motorfahrzeugversicherung» 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 «Haftpflichtrecht und Motorfahrzeugversicherung» die entsprechenden Kapitel"
)
),
),
(
"user_confirmation",
ExplanationBlockFactory(
text=RichText(
"Ja, ich habe das Kapitel gelesen und verstanden."
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 3: Offerte 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>
Nun geht es los! Erstelle dir für dein erstes eigenes Auto eine entsprechende
Offerte. Überlege dir, welche Deckungen du unbedingt abschliessen musst und
welche Deckungen für dich zusätzlich wünschenswert sind. Nutze dazu das
Offertentool deiner Unternehmung. Alternativ dazu kannst du auch irgendein
Onlinetool nutzen.
</p>
<p>
Möglicherweise musst du mit deinem Geburtsjahrgang etwas schummeln,
damit du alt genug bist, um für dich eine Offerte zu machen.
</p>
"""
)
)
),
),
(
"user_confirmation",
ExplanationBlockFactory(
text=RichText("Ja, ich habe eine Offerte erstellt.")
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 4: Notizen und Fragestellungen",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"explanation",
ExplanationBlockFactory(
text=RichText(
"Mache dir im Verlauf des Prozesses Notizen zu den folgenden Fragestellungen:"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Wie bist du bei der Erstellung deiner Offerte vorgegangen?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welches waren die Schwierigkeiten bei der Erstellung der Offerte? Wie hast du die Schwierigkeiten gelöst?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welche Angaben sind zwingend notwendig, um eine saubere Motorfahrzeugofferte erstellen zu können?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welche zusätzlichen Deckungen hast du gewählt? Was waren die Überlegungen dazu?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welche Faktoren/Elemente bestimmen hauptsächlich die Höhe der Prämie?"
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 5: Präzenz-Training",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"explanation",
ExplanationBlockFactory(
text=RichText(
"<p>Bringe die Offerte und diese Notizen mit ins Präsenz-Training.</p>"
"<p>Vergiss die dazugehörenden AVB nicht. Es ist auch okay, wenn du die Unterlagen nur elektronisch dabei hast.</p>"
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Aufgaben zum Vorbereitungsauftrag",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"explanation",
ExplanationBlockFactory(
text=RichText(
"Schnappt euch euren Vorbereitungsauftrag und setzt euch zu dritt zusammen. Diskutiert miteinander die folgenden Fragen."
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Wie seid ihr bei der Erstellung der Offerte vorgegangen?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welches waren die Schwierigkeiten bei der Erstellung der Offerte? Wie hast du die Schwierigkeiten gelöst?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welche Angaben sind zwingend notwendig, um eine saubere Motorfahrzeugofferte erstellen zu können?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welche zusätzlichen Deckungen hast du gewählt? Was waren die Überlegungen dazu?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Welche Faktoren/Elemente bestimmen hauptsächlich die Höhe der Prämie?"
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Wenn ihr mit der Diskussion und dem Vergleich fertig seid, schreibt doch die Prämie eurer eigenen Offerte jeweils auf den Flipchart/Whiteboard/Wandtafel."
)
),
),
],
),
),
)
)
assignment.save()
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_basis_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="Circle Basis",
effort_required="ca. 1 Tag",
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 (K2).</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>
Du bist in einer spannenden Branche gelandet. In der Welt der Versicherungen. Für das Funktionieren
einer modernen Volkswirtschaft sind Versicherungen von grosser Bedeutung. Deshalb ist es zwingend
notwendig, dass du dich mit den Grundlagen der Versicherungen auseinandersetzt.
</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(
"""
Verschaffe dir einen ersten Überblick zu den unterschiedlichen Prozessen
eines Versicherungsunternehmens. Lese dazu im Lernmedium «Kunde und
Versicherung» den Abschnitt «Die Wertschöpfungsprozesse eines
Versicherers» (Seiten 14 bis 17)
"""
)
),
),
(
"user_confirmation",
ExplanationBlockFactory(
text=RichText("Ja, ich habe den Abschnitt gelesen.")
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 2: Interview",
# 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(
"""
<p>Interviewe in deinem Lehrbetrieb je eine Person aus zwei von dir gewählten
Geschäftsprozess-Bereichen (z. B. Underwriting und Schaden) und frage sie
folgendes:</p>
<ul>
<li>Welches sind die 2 grössten Herausforderungen in deinem Bereich?</li>
<li>Was macht den Job in deinem Bereich besonders spannend?</li>
</ul>
"""
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Notiere deine Ergebnisse elektronisch oder physisch und bring alles ins Training mit."
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 3: Überblick Kennzahlen",
# 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>
Verschaffe dir einen ersten Überblick zu den unterschiedlichen Kennzahlen.
Lese dazu im Lernmedium «Kunde und Versicherung» den Abschnitt «Das
Unternehmen Versicherung in Zahlen» (Seiten 26 bis 32)
</p>
"""
)
)
),
),
(
"user_confirmation",
ExplanationBlockFactory(
text=RichText("Ja, ich habe den Abschnitt gelesen.")
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 4: Kennzahlen im Detail",
# 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>
Bring aus deinem Lehrbetrieb 3 Kennzahlen aus dem letzten Geschäftsjahr in Erfahrung:
</p>
<ul>
<li>Prämieneinnahmen in Franken</li>
<li>Kostenaufwand in Franken</li>
<li>Schadenaufwand / Schadenzahlungen in Franken</li>
</ul>
<p>Wenn du nicht weiterkommst, frag deine Ansprechperson im Lehrbetrieb.</p>
"""
)
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Notiere deine Ergebnisse elektronisch oder physisch und bring alles ins Training mit."
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 5: Rechte und Pflichten",
# 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>Lese im Lehrmittel «Kunde und Versicherung» den Abschnitt «Die Rechteund Pflichten der Parteien» (Seiten 130 bis 141)</p>
"""
)
)
),
),
(
"user_confirmation",
ExplanationBlockFactory(
text=RichText("Ja, ich habe den Abschnitt gelesen.")
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 6: Versicherungsvertraggesetz (VVG)",
# 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>Besorge dir ein VVG (Versicherungsvertragsgesetz) auf <a href="https://www.fedlex.admin.ch/eli/cc/24/719_735_717/de">www.fedlex.admin.ch</a></p>
"""
)
)
),
),
(
"user_confirmation",
ExplanationBlockFactory(
text=RichText("Ja, ich habe das VVG besorgt.")
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Teilaufgabe 7: Rechte und Pflichten im Lehrbetrieb",
# 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>
Kläre im Lehrbetrieb zwei Fragen:
</p>
<ul>
<li>Wie geht dein Lehrbetrieb vor, wenn der Kunde die Prämie nicht zahlt?</li>
<li>Kostenaufwand in Franken</li>
<li>Wie geht dein Lehrbetrieb vor, wenn der Kunde ein Schadenereignis grobfahrlässig herbeigeführt hat?</li>
</ul>
"""
)
)
),
),
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Notiere deine Ergebnisse elektronisch oder physisch und bring alles ins Training mit."
)
),
),
],
),
),
)
)
assignment.save()
return assignment
def create_uk_reflection(course_id=COURSE_UK, circle_title="Fahrzeug"):
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.REFLECTION.name,
title=f"Reflexion",
effort_required="ca. 1 Stunde",
intro_text=replace_whitespace(
"""
<p>
Du hast in diesem Circle viele neue Inhalte und Inputs erhalten.
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.
Es deckt deine persönlichen Stärken und Schwächen während der Erarbeitung auf und hilft dir, dich laufend zu verbessern.
</p>
"""
),
performance_objectives=[],
)
assignment.tasks = []
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Frage 1: Was gelingt mir bereits gut?",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"user_text_input",
UserTextInputBlockFactory(),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Frage 2: Vertiefung",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Wo muss ich mich noch vertiefen oder nochmals repetieren? "
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Frage 3: Was nehme ich mit?",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"user_text_input",
UserTextInputBlockFactory(),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Frage 4: Vorbereitung",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Wie habe ich mich auf den Circle vorbereitet (z. B. Lernzeit eingeplant)?"
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Frage 5: Präsenzunterricht",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Wie engagiert war ich im Präsenzunterricht?"
)
),
),
],
),
),
)
)
assignment.tasks.append(
(
"task",
TaskBlockFactory(
title="Frage 6: Verbesserung",
content=StreamValue(
TaskContentStreamBlock(),
stream_data=[
(
"user_text_input",
UserTextInputBlockFactory(
text=RichText(
"Was will ich für den nächsten Circle im Lernprozess ändern/verbessern?"
)
),
),
],
),
),
)
)
assignment.save()
return assignment