OnlineJudge/group/views/admin.py
virusdefender aad46b67cc update
2018-05-07 08:06:29 +08:00

36 lines
1.1 KiB
Python

from account.decorators import admin_role_required, ensure_created_by
from utils.api import APIView, validate_serializer
from ..models import Group
from ..serializers import GroupSerializer
class GroupAPI(APIView):
@admin_role_required
def get(self, request):
_id = request.GET.get("id")
keyword = request.GET.get("keyword")
user = request.user
if _id:
try:
group = Group.objects.get(id=_id)
ensure_created_by(group, user)
return self.success(GroupSerializer(group).data)
except Group.DoesNotExist:
return self.error("Group does not exist")
groups = Group.objects.all().order_by("-create_time")
if not user.is_super_admin():
groups = groups.filter(created_by=user)
if keyword:
groups = groups.filter(name__contains=keyword)
return self.success(self.paginate_data(request, groups, GroupSerializer))
def post(self, request):
pass
def put(self, request):
pass
def delete(self, request):
pass