OnlineJudge/group/serializers.py

54 lines
1.5 KiB
Python
Raw Normal View History

2018-05-07 00:06:29 +00:00
from utils.api import serializers
from utils.api._serializers import UsernameSerializer
from .models import Group
class GroupSerializer(serializers.ModelSerializer):
created_by = UsernameSerializer()
2018-05-13 08:40:47 +00:00
members = UsernameSerializer(many=True)
2018-05-07 00:06:29 +00:00
class Meta:
model = Group
fields = "__all__"
2018-05-13 08:40:47 +00:00
class CreateGroupSerializer(serializers.Serializer):
name = serializers.CharField()
description = serializers.CharField()
password = serializers.CharField(allow_blank=True)
allow_join = serializers.BooleanField()
class EditGroupSerializer(CreateGroupSerializer):
id = serializers.IntegerField()
class DeleteGroupSerializer(serializers.Serializer):
group_id = serializers.IntegerField()
user_id = serializers.IntegerField(required=False)
class SimpleGroupSerializer(serializers.ModelSerializer):
created_by = UsernameSerializer()
2018-05-16 17:13:54 +00:00
password = serializers.SerializerMethodField()
me = serializers.BooleanField()
2018-05-20 05:30:52 +00:00
members = UsernameSerializer(many=True)
2018-05-16 17:13:54 +00:00
def get_password(self, obj):
return obj.password != ""
2018-05-13 08:40:47 +00:00
class Meta:
model = Group
2018-05-20 05:30:52 +00:00
fields = ["id", "created_by", "name", "password", "me", "members"]
2018-05-13 08:40:47 +00:00
class JoinGroupSerializer(serializers.Serializer):
group_name = serializers.CharField()
2018-05-20 05:30:52 +00:00
password = serializers.CharField(allow_blank=True)
class AddUserToGroupSerializer(serializers.Serializer):
group_id = serializers.IntegerField()
username = serializers.CharField()