Serializer for CompetenceProfile

This commit is contained in:
Daniel Egger 2022-09-27 17:13:29 +02:00
parent 46998668d8
commit 8cfde35704
5 changed files with 44 additions and 1 deletions

View File

@ -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

View File

@ -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'),
)

View File

@ -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

View File

@ -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

View File

@ -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'<span style="font-weight: 700; font-size: 20px;">{self.draft_title}</span>'