2015-08-09 04:57:59 +00:00
|
|
|
# coding=utf-8
|
|
|
|
from rest_framework import serializers
|
|
|
|
|
2015-08-11 11:14:41 +00:00
|
|
|
from account.models import User
|
2015-08-09 11:59:25 +00:00
|
|
|
from account.serializers import UserSerializer
|
2015-08-11 11:14:41 +00:00
|
|
|
from .models import Group, UserGroupRelation, JoinGroupRequest
|
2015-08-09 04:57:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
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):
|
2015-08-10 04:24:36 +00:00
|
|
|
group_id = serializers.IntegerField()
|
2015-08-09 04:57:59 +00:00
|
|
|
name = serializers.CharField(max_length=20)
|
|
|
|
description = serializers.CharField(max_length=300)
|
|
|
|
join_group_setting = serializers.IntegerField()
|
2015-12-09 13:48:24 +00:00
|
|
|
visible = serializers.BooleanField()
|
2015-08-09 04:57:59 +00:00
|
|
|
|
|
|
|
|
2015-08-11 11:14:41 +00:00
|
|
|
class CreateJoinGroupRequestSerializer(serializers.Serializer):
|
2015-08-09 11:13:48 +00:00
|
|
|
group_id = serializers.IntegerField()
|
2015-09-03 12:25:09 +00:00
|
|
|
message = serializers.CharField(max_length=30, required=False)
|
2015-08-09 04:57:59 +00:00
|
|
|
|
|
|
|
|
2015-08-11 11:14:41 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2015-08-09 04:57:59 +00:00
|
|
|
class GroupSerializer(serializers.ModelSerializer):
|
2015-08-11 11:14:41 +00:00
|
|
|
members_number = serializers.SerializerMethodField("_get_group_members_number")
|
|
|
|
|
|
|
|
def _get_group_members_number(self, group):
|
|
|
|
return group.members.all().count()
|
|
|
|
|
2015-08-09 04:57:59 +00:00
|
|
|
class Meta:
|
|
|
|
model = Group
|
2015-08-09 11:06:55 +00:00
|
|
|
exclude = ["members"]
|
2015-08-09 11:59:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
class GroupMemberSerializer(serializers.ModelSerializer):
|
2015-08-11 11:14:41 +00:00
|
|
|
class UserSerializer(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
|
|
model = User
|
|
|
|
fields = ["id", "username", "real_name"]
|
|
|
|
|
2015-08-09 11:59:25 +00:00
|
|
|
user = UserSerializer()
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = UserGroupRelation
|
2015-08-11 11:14:41 +00:00
|
|
|
exclude = ["id"]
|
2015-08-09 11:59:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
class EditGroupMemberSerializer(serializers.Serializer):
|
|
|
|
group_id = serializers.IntegerField()
|
2015-08-11 11:14:41 +00:00
|
|
|
members = serializers.ListField(child=serializers.IntegerField())
|
|
|
|
|
|
|
|
|
|
|
|
class PutJoinGroupRequestSerializer(serializers.Serializer):
|
|
|
|
request_id = serializers.IntegerField()
|
2015-12-09 12:04:11 +00:00
|
|
|
status = serializers.BooleanField()
|
|
|
|
|
|
|
|
class GroupPromoteAdminSerializer(serializers.Serializer):
|
|
|
|
user_id = serializers.IntegerField()
|
|
|
|
group_id = serializers.IntegerField()
|