40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
import structlog
|
|
from rest_framework import serializers
|
|
|
|
from vbv_lernwelt.feedback.models import FeedbackResponse
|
|
|
|
logger = structlog.get_logger(__name__)
|
|
|
|
|
|
class FeedbackIntegerField(serializers.IntegerField):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(
|
|
required=False, allow_null=True, min_value=1, max_value=5, **kwargs
|
|
)
|
|
|
|
|
|
class CourseFeedbackSerializer(serializers.Serializer):
|
|
satisfaction = FeedbackIntegerField()
|
|
goal_attainment = FeedbackIntegerField()
|
|
proficiency = serializers.IntegerField(required=False, allow_null=True)
|
|
preparation_task_clarity = serializers.BooleanField(required=False, allow_null=True)
|
|
materials_rating = FeedbackIntegerField()
|
|
instructor_competence = FeedbackIntegerField()
|
|
instructor_respect = FeedbackIntegerField()
|
|
instructor_open_feedback = serializers.CharField(
|
|
required=False, allow_null=True, allow_blank=True
|
|
)
|
|
would_recommend = serializers.BooleanField(required=False, allow_null=True)
|
|
course_positive_feedback = serializers.CharField(
|
|
required=False, allow_null=True, allow_blank=True
|
|
)
|
|
course_negative_feedback = serializers.CharField(
|
|
required=False, allow_null=True, allow_blank=True
|
|
)
|
|
|
|
|
|
class CypressFeedbackResponseSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = FeedbackResponse
|
|
fields = "__all__"
|