Add text for "Vorbereitunsauftrag"
This commit is contained in:
parent
bd22189f9b
commit
951d9b42e6
|
|
@ -1,6 +1,11 @@
|
|||
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 (
|
||||
EvaluationSubTaskBlock,
|
||||
TaskContentStreamBlock,
|
||||
AssignmentType,
|
||||
)
|
||||
from vbv_lernwelt.assignment.tests.assignment_factories import (
|
||||
AssignmentFactory,
|
||||
|
|
@ -15,19 +20,11 @@ from vbv_lernwelt.assignment.tests.assignment_factories import (
|
|||
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,
|
||||
)
|
||||
|
||||
def create_uk_casework(assignment_list_page, course_id=COURSE_UK):
|
||||
assignment = AssignmentFactory(
|
||||
parent=assignment_page,
|
||||
parent=assignment_list_page,
|
||||
title="Überprüfen einer Motorfahrzeugs-Versicherungspolice",
|
||||
effort_required="ca. 5 Stunden",
|
||||
starting_position=replace_whitespace(
|
||||
|
|
@ -896,3 +893,241 @@ def create_test_assignment(course_id=COURSE_TEST_ID):
|
|||
assignment.save()
|
||||
|
||||
return assignment
|
||||
|
||||
|
||||
def create_uk_prep_assignment(assignment_list_page, course_id=COURSE_UK):
|
||||
assignment = AssignmentFactory(
|
||||
parent=assignment_list_page,
|
||||
assignment_type=AssignmentType.PREP_ASSIGNMENT.name,
|
||||
title="Fahrzeug - Mein erstes Auto",
|
||||
effort_required="ca. 3 Stunden",
|
||||
starting_position=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.save()
|
||||
|
||||
return assignment
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.13 on 2023-05-19 13:43
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('assignment', '0003_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='assignment',
|
||||
name='assignment_type',
|
||||
field=models.CharField(choices=[('CASEWORK', 'CASEWORK'), ('PREP_ASSIGNMENT', 'PREP_ASSIGNMENT'), ('REFLECTION', 'REFLECTION')], default='CASEWORK', max_length=50),
|
||||
),
|
||||
]
|
||||
|
|
@ -8,7 +8,10 @@ from wagtail.admin.panels import FieldPanel
|
|||
from wagtail.fields import RichTextField, StreamField
|
||||
from wagtail.models import Page
|
||||
|
||||
from vbv_lernwelt.core.constants import DEFAULT_RICH_TEXT_FEATURES
|
||||
from vbv_lernwelt.core.constants import (
|
||||
DEFAULT_RICH_TEXT_FEATURES,
|
||||
DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER,
|
||||
)
|
||||
from vbv_lernwelt.core.model_utils import find_available_slug
|
||||
from vbv_lernwelt.core.models import User
|
||||
from vbv_lernwelt.course.models import CourseBasePage
|
||||
|
|
@ -104,6 +107,16 @@ class EvaluationTaskBlock(blocks.StructBlock):
|
|||
label = "Beurteilungskriterium"
|
||||
|
||||
|
||||
AssignmentType = Enum(
|
||||
"AssignmentType",
|
||||
[
|
||||
"CASEWORK", # Geleitete Fallarbeit
|
||||
"PREP_ASSIGNMENT", # Vorbereitungsauftrag
|
||||
"REFLECTION", # Reflexion
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
class Assignment(CourseBasePage):
|
||||
serialize_field_names = [
|
||||
"starting_position",
|
||||
|
|
@ -115,8 +128,15 @@ class Assignment(CourseBasePage):
|
|||
"evaluation_tasks",
|
||||
]
|
||||
|
||||
assignment_type = models.CharField(
|
||||
max_length=50,
|
||||
choices=[(tag.name, tag.name) for tag in AssignmentType],
|
||||
default=AssignmentType.CASEWORK.name,
|
||||
)
|
||||
|
||||
starting_position = RichTextField(
|
||||
help_text="Erläuterung der Ausgangslage", features=DEFAULT_RICH_TEXT_FEATURES
|
||||
help_text="Erläuterung der Ausgangslage",
|
||||
features=DEFAULT_RICH_TEXT_FEATURES_WITH_HEADER,
|
||||
)
|
||||
effort_required = models.CharField(
|
||||
max_length=100, help_text="Zeitaufwand als Text", blank=True
|
||||
|
|
@ -161,6 +181,7 @@ class Assignment(CourseBasePage):
|
|||
)
|
||||
|
||||
content_panels = Page.content_panels + [
|
||||
FieldPanel("assignment_type"),
|
||||
FieldPanel("starting_position"),
|
||||
FieldPanel("effort_required"),
|
||||
FieldPanel("performance_objectives"),
|
||||
|
|
|
|||
|
|
@ -2,9 +2,13 @@ import random
|
|||
|
||||
import djclick as click
|
||||
|
||||
from vbv_lernwelt.assignment.creators.create_assignments import create_uk_assignments
|
||||
from vbv_lernwelt.assignment.creators.create_assignments import (
|
||||
create_uk_casework,
|
||||
create_uk_prep_assignment,
|
||||
)
|
||||
from vbv_lernwelt.assignment.models import Assignment
|
||||
from vbv_lernwelt.assignment.services import update_assignment_completion
|
||||
from vbv_lernwelt.assignment.tests.assignment_factories import AssignmentListPageFactory
|
||||
from vbv_lernwelt.competence.create_uk_competence_profile import (
|
||||
create_uk_competence_profile,
|
||||
create_uk_fr_competence_profile,
|
||||
|
|
@ -148,7 +152,16 @@ def create_course_uk_de():
|
|||
create_versicherungsvermittlerin_with_categories(
|
||||
course_id=COURSE_UK, title="Überbetriebliche Kurse"
|
||||
)
|
||||
create_uk_assignments(course_id=COURSE_UK)
|
||||
|
||||
# assignments
|
||||
course_page = CoursePage.objects.get(course_id=COURSE_UK)
|
||||
assignment_list_page = AssignmentListPageFactory(
|
||||
parent=course_page,
|
||||
)
|
||||
create_uk_casework(assignment_list_page, course_id=COURSE_UK)
|
||||
create_uk_prep_assignment(assignment_list_page, course_id=COURSE_UK)
|
||||
|
||||
# learning path
|
||||
create_uk_learning_path(course_id=COURSE_UK)
|
||||
create_uk_competence_profile(course_id=COURSE_UK)
|
||||
create_default_media_library(course_id=COURSE_UK)
|
||||
|
|
|
|||
Loading…
Reference in New Issue