from rest_framework import serializers
from core.models import Student, Submission, Feedback, ExamType

from core.models import Feedback, Student, Submission
=======
from rest_framework import serializers
from core.models import Student, Submission, Feedback, ExamType


class ExamSerializer(serializers.ModelSerializer):
    class Meta:
        model = ExamType
        fields = ('module_reference', 'total_score', 'pass_score', 'pass_only',)
>>>>>>> First step towards REST + Vue Student Page


class FeedbackSerializer(serializers.ModelSerializer):
    class Meta:
        model = Feedback
        fields = ('text', 'score')


class SubmissionSerializer(serializers.ModelSerializer):
    feedback = serializers.ReadOnlyField(source='feedback.text')
    score = serializers.ReadOnlyField(source='feedback.score')
    type = serializers.ReadOnlyField(source='type.name')
    full_score = serializers.ReadOnlyField(source='type.full_score')

    class Meta:
        model = Submission
        fields = ('type', 'text', 'feedback', 'score', 'full_score')


class StudentSerializer(serializers.ModelSerializer):
    name = serializers.ReadOnlyField(source='user.fullname')
    user = serializers.ReadOnlyField(source='user.username')
    exam = ExamSerializer()
    submissions = SubmissionSerializer(many=True)

    class Meta:
        model = Student
        fields = ('name', 'user', 'exam', 'submissions')