Skip to content
Snippets Groups Projects
serializers.py 946 B
Newer Older
from rest_framework import serializers
Bodor Máté's avatar
Bodor Máté committed
from account import models
Bodor Máté's avatar
Bodor Máté committed
class ChoiceSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.GroupChoice
        fields = ('choice', 'profile')
class ProfileSerializer(serializers.ModelSerializer):
    groups = serializers.SlugRelatedField(many=True, slug_field="choice", queryset=models.GroupChoice.objects.all())
    updated_at = serializers.DateTimeField(read_only=True)
    signed = serializers.BooleanField()
Bodor Máté's avatar
Bodor Máté committed
        model = models.Profile
        fields = ('id', 'join_date', 'updated_at', 'user', 'nick', 'motivation', 'signed', 'groups')

    def validate(self, data):
        deadline = models.Deadline.get_solo().deadline
        if deadline is None:
            return data

        if data['signed'] is True and data['updated_at'] > deadline:
            raise serializers.ValidationError("You cannot join after the deadline")

        return data