Add serializer

This commit is contained in:
Christian Cueni 2024-10-28 12:50:52 +01:00
parent 1d2aa38896
commit ea1d140fc1
4 changed files with 24 additions and 0 deletions

View File

@ -1,6 +1,7 @@
import graphene
from django.db.models import Q
from graphql import GraphQLError
from vbv_lernwelt.course.graphql.types import CourseObjectType, CourseSessionObjectType
from vbv_lernwelt.course.models import Course, CourseSession
from vbv_lernwelt.iam.permissions import has_course_access

View File

@ -8,12 +8,14 @@ from vbv_lernwelt.feedback.graphql.types import (
FeedbackResponseObjectType as FeedbackResponseType,
)
from vbv_lernwelt.feedback.serializers import (
CourseFeedbackSerializerAutomobilGewerbe,
CourseFeedbackSerializerUK,
CourseFeedbackSerializerVV,
)
from vbv_lernwelt.feedback.services import update_feedback_response
from vbv_lernwelt.iam.permissions import has_course_session_access
from vbv_lernwelt.learnpath.models import (
LearningContentFeedbackAutomobilGewerbe,
LearningContentFeedbackUK,
LearningContentFeedbackVV,
)
@ -56,6 +58,10 @@ class SendFeedbackMutation(graphene.Mutation):
learningContentFeedbackModel = LearningContentFeedbackUK
serializerClass = CourseFeedbackSerializerUK
data["feedback_type"] = "uk"
elif learning_content_type == "learnpath.LearningContentFeedbackAutomobilGewerbe":
learningContentFeedbackModel = LearningContentFeedbackAutomobilGewerbe
serializerClass = CourseFeedbackSerializerAutomobilGewerbe
data["feedback_type"] = "automobilgewerbe"
else:
errors = [
ErrorType(

View File

@ -8,6 +8,7 @@ logger = structlog.get_logger(__name__)
FEEDBACK_TYPES = (
("uk", "Feedback UK"),
("vv", "Feedback VV"),
("automobilgewerbe", "Feedback Automobilgewerbe"),
)
@ -55,6 +56,21 @@ class CourseFeedbackSerializerVV(serializers.Serializer):
)
class CourseFeedbackSerializerAutomobilGewerbe(serializers.Serializer):
feedback_type = serializers.ChoiceField(choices=FEEDBACK_TYPES)
satisfaction = FeedbackIntegerField()
goal_attainment = FeedbackIntegerField()
proficiency = serializers.IntegerField(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

View File

@ -1,6 +1,7 @@
import graphene
import structlog
from graphene_django import DjangoObjectType
from vbv_lernwelt.core.utils import find_first_index
from vbv_lernwelt.course.graphql.interfaces import CoursePageInterface
from vbv_lernwelt.learnpath.models import (