diff --git a/prepare_server.sh b/prepare_server.sh index 3f9a1623..cfd6e943 100755 --- a/prepare_server.sh +++ b/prepare_server.sh @@ -64,6 +64,7 @@ if [ "$SKIP_SETUP" = false ]; then python3 server/manage.py create_default_users --settings="$DJANGO_SETTINGS_MODULE" python3 server/manage.py create_default_courses --settings="$DJANGO_SETTINGS_MODULE" python3 server/manage.py create_default_learning_path --settings="$DJANGO_SETTINGS_MODULE" + python3 server/manage.py create_default_competence_profile --settings="$DJANGO_SETTINGS_MODULE" python3 server/manage.py create_default_media_library --settings="$DJANGO_SETTINGS_MODULE" # make django translations diff --git a/server/vbv_lernwelt/competence/create_default_competence_profile.py b/server/vbv_lernwelt/competence/create_default_competence_profile.py index 0485b0da..df2f37ab 100644 --- a/server/vbv_lernwelt/competence/create_default_competence_profile.py +++ b/server/vbv_lernwelt/competence/create_default_competence_profile.py @@ -19,3 +19,17 @@ def create_default_competence_profile(): text='Innerhalb des Handlungsfelds «Fahrzeug» bin ich fähig, die Ziele und Pläne des Kunden zu ergründen (SOLL).', learning_unit=LearningUnit.objects.get(slug='versicherungsvermittlerin-lp-circle-analyse-lu-fahrzeug'), ) + PerformanceCriteriaFactory( + parent=competence_profile_page, + title='B2.1 Fahrzeug', + text='Innerhalb des Handlungsfelds «Fahrzeug» bin ich fähig, die IST-Situation des Kunden mit der geeigneten Gesprächs-/Fragetechnik zu erfassen.', + learning_unit=LearningUnit.objects.get(slug='versicherungsvermittlerin-lp-circle-analyse-lu-fahrzeug'), + ) + PerformanceCriteriaFactory( + parent=competence_profile_page, + title='B2.2 Fahrzeug', + text='Innerhalb des Handlungsfelds «Fahrzeug» bin ich fähig, die Risiken aufzuzeigen.', + learning_unit=LearningUnit.objects.get(slug='versicherungsvermittlerin-lp-circle-analyse-lu-fahrzeug'), + ) + + diff --git a/server/vbv_lernwelt/competence/models.py b/server/vbv_lernwelt/competence/models.py index 6dd132ec..a6660fc1 100644 --- a/server/vbv_lernwelt/competence/models.py +++ b/server/vbv_lernwelt/competence/models.py @@ -42,9 +42,15 @@ class PerformanceCriteria(Page): content_panels = [ FieldPanel('title'), + FieldPanel('text'), FieldPanel('learning_unit'), ] def full_clean(self, *args, **kwargs): self.slug = find_available_slug(slugify(f"{self.get_parent()}-crit-{self.title}", allow_unicode=True)) super(PerformanceCriteria, self).full_clean(*args, **kwargs) + + @classmethod + def get_serializer_class(cls): + from vbv_lernwelt.competence.serializers import PerfomanceCriteriaSerializer + return PerfomanceCriteriaSerializer diff --git a/server/vbv_lernwelt/competence/serializers.py b/server/vbv_lernwelt/competence/serializers.py new file mode 100644 index 00000000..9280f338 --- /dev/null +++ b/server/vbv_lernwelt/competence/serializers.py @@ -0,0 +1,19 @@ +from rest_framework import serializers + +from vbv_lernwelt.competence.models import PerformanceCriteria +from vbv_lernwelt.learnpath.serializer_helpers import get_it_serializer_class + + +class PerfomanceCriteriaSerializer(get_it_serializer_class(PerformanceCriteria, [ + 'id', 'title', 'slug', 'type', 'translation_key', + 'text', 'learning_unit', 'circle', +])): + learning_unit = serializers.SerializerMethodField() + circle = serializers.SerializerMethodField() + + def get_learning_unit(self, obj): + learning_unit_serializer = obj.learning_unit.get_serializer_class() + return learning_unit_serializer(obj.learning_unit).data + + def get_circle(self, obj): + return obj.learning_unit.get_parent().specific.title diff --git a/server/vbv_lernwelt/learnpath/models.py b/server/vbv_lernwelt/learnpath/models.py index 578452a1..74d47540 100644 --- a/server/vbv_lernwelt/learnpath/models.py +++ b/server/vbv_lernwelt/learnpath/models.py @@ -195,7 +195,10 @@ class LearningUnit(Page): @classmethod def get_serializer_class(cls): - return get_it_serializer_class(cls, field_names=['id', 'title', 'slug', 'type', 'translation_key', 'children']) + return get_it_serializer_class(cls, field_names=[ + 'id', 'title', 'slug', 'type', 'translation_key', 'children', + 'course_category', + ]) def get_admin_display_title_html(self): return f'{self.draft_title}'