vbv/server/vbv_lernwelt/self_evaluation_feedback/serializers.py

41 lines
1.2 KiB
Python

from typing import List
from rest_framework import serializers
from vbv_lernwelt.competence.models import PerformanceCriteria
from vbv_lernwelt.core.serializers import UserSerializer
from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback
class SelfEvaluationFeedbackSerializer(serializers.ModelSerializer):
criteria = serializers.SerializerMethodField()
feedback_requester_user = UserSerializer(read_only=True)
feedback_provider_user = UserSerializer(read_only=True)
learning_unit_id = serializers.PrimaryKeyRelatedField(
read_only=True, source="learning_unit"
)
class Meta:
model = SelfEvaluationFeedback
fields = [
"id",
"learning_unit_id",
"feedback_submitted",
"feedback_requester_user",
"feedback_provider_user",
"criteria",
]
def get_criteria(self, obj):
performance_criteria: List[
PerformanceCriteria
] = obj.learning_unit.performancecriteria_set.all()
return [
{
"id": criteria.id,
"title": criteria.title,
}
for criteria in performance_criteria
]