41 lines
1.2 KiB
Python
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
|
|
]
|