mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 08:23:20 +00:00
81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
# coding=utf-8
|
|
from rest_framework import serializers
|
|
|
|
from account.models import User
|
|
from account.serializers import UserSerializer
|
|
from .models import Group, UserGroupRelation, JoinGroupRequest
|
|
|
|
|
|
class CreateGroupSerializer(serializers.Serializer):
|
|
name = serializers.CharField(max_length=20)
|
|
description = serializers.CharField(max_length=300)
|
|
join_group_setting = serializers.IntegerField(min_value=0, max_value=2)
|
|
|
|
|
|
class EditGroupSerializer(serializers.Serializer):
|
|
group_id = serializers.IntegerField()
|
|
name = serializers.CharField(max_length=20)
|
|
description = serializers.CharField(max_length=300)
|
|
join_group_setting = serializers.IntegerField()
|
|
|
|
|
|
class CreateJoinGroupRequestSerializer(serializers.Serializer):
|
|
group_id = serializers.IntegerField()
|
|
message = serializers.CharField(max_length=30, required=False)
|
|
|
|
|
|
class JoinGroupRequestSerializer(serializers.ModelSerializer):
|
|
class GroupSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Group
|
|
fields = ["id", "name"]
|
|
|
|
class UserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = ["username"]
|
|
|
|
group = GroupSerializer()
|
|
user = UserSerializer()
|
|
|
|
class Meta:
|
|
model = JoinGroupRequest
|
|
|
|
|
|
class GroupSerializer(serializers.ModelSerializer):
|
|
members_number = serializers.SerializerMethodField("_get_group_members_number")
|
|
|
|
def _get_group_members_number(self, group):
|
|
return group.members.all().count()
|
|
|
|
class Meta:
|
|
model = Group
|
|
exclude = ["members"]
|
|
|
|
|
|
class GroupMemberSerializer(serializers.ModelSerializer):
|
|
class UserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = User
|
|
fields = ["id", "username", "real_name"]
|
|
|
|
user = UserSerializer()
|
|
|
|
class Meta:
|
|
model = UserGroupRelation
|
|
exclude = ["id"]
|
|
|
|
|
|
class EditGroupMemberSerializer(serializers.Serializer):
|
|
group_id = serializers.IntegerField()
|
|
members = serializers.ListField(child=serializers.IntegerField())
|
|
|
|
|
|
class PutJoinGroupRequestSerializer(serializers.Serializer):
|
|
request_id = serializers.IntegerField()
|
|
status = serializers.BooleanField()
|
|
|
|
class GroupPromoteAdminSerializer(serializers.Serializer):
|
|
user_id = serializers.IntegerField()
|
|
group_id = serializers.IntegerField()
|