62 lines
2.2 KiB
Python
62 lines
2.2 KiB
Python
import structlog
|
|
from rest_framework import serializers
|
|
|
|
from vbv_lernwelt.feedback.models import FeedbackResponse
|
|
|
|
logger = structlog.get_logger(__name__)
|
|
|
|
FEEDBACK_TYPES = (
|
|
("uk", "Feedback UK"),
|
|
("vv", "Feedback VV"),
|
|
)
|
|
|
|
|
|
class FeedbackIntegerField(serializers.IntegerField):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(
|
|
required=False, allow_null=True, min_value=1, max_value=5, **kwargs
|
|
)
|
|
|
|
|
|
class CourseFeedbackSerializerUK(serializers.Serializer):
|
|
feedback_type = serializers.ChoiceField(choices=FEEDBACK_TYPES)
|
|
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 CourseFeedbackSerializerVV(serializers.Serializer):
|
|
feedback_type = serializers.ChoiceField(choices=FEEDBACK_TYPES)
|
|
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()
|
|
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__"
|