mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2025-11-04 14:49:58 +08:00
修复小bug,仿照problem GET添加获取单个比赛信息的API
This commit is contained in:
parent
5cdab3f573
commit
266ce4de66
@ -90,8 +90,8 @@ class ContestAdminAPIView(APIView):
|
|||||||
try:
|
try:
|
||||||
# 超级管理员可以编辑所有的
|
# 超级管理员可以编辑所有的
|
||||||
contest = Contest.objects.get(id=data["id"])
|
contest = Contest.objects.get(id=data["id"])
|
||||||
if request.user.admin_type != SUPER_ADMIN:
|
if request.user.admin_type != SUPER_ADMIN and contest.created_by != request.user:
|
||||||
contest = contest.get(created_by=request.user)
|
return error_response(u"无权访问!")
|
||||||
except Contest.DoesNotExist:
|
except Contest.DoesNotExist:
|
||||||
return error_response(u"该比赛不存在!")
|
return error_response(u"该比赛不存在!")
|
||||||
try:
|
try:
|
||||||
@ -144,6 +144,18 @@ class ContestAdminAPIView(APIView):
|
|||||||
---
|
---
|
||||||
response_serializer: ContestSerializer
|
response_serializer: ContestSerializer
|
||||||
"""
|
"""
|
||||||
|
contest_id = request.GET.get("contest_id", None)
|
||||||
|
if contest_id:
|
||||||
|
try:
|
||||||
|
# 普通管理员只能获取自己创建的题目
|
||||||
|
# 超级管理员可以获取全部的题目
|
||||||
|
contest = Contest.objects.get(id=contest_id)
|
||||||
|
if request.user.admin_type != SUPER_ADMIN and contest.created_by != request.user:
|
||||||
|
return error_response(u"题目不存在")
|
||||||
|
return success_response(ContestSerializer(contest).data)
|
||||||
|
except Contest.DoesNotExist:
|
||||||
|
return error_response(u"题目不存在")
|
||||||
|
|
||||||
if request.user.admin_type == SUPER_ADMIN:
|
if request.user.admin_type == SUPER_ADMIN:
|
||||||
contest = Contest.objects.all().order_by("-create_time")
|
contest = Contest.objects.all().order_by("-create_time")
|
||||||
else:
|
else:
|
||||||
@ -171,8 +183,8 @@ class ContestProblemAdminAPIView(APIView):
|
|||||||
data = serializer.data
|
data = serializer.data
|
||||||
try:
|
try:
|
||||||
contest = Contest.objects.get(id=data["contest_id"])
|
contest = Contest.objects.get(id=data["contest_id"])
|
||||||
if request.user.admin_type != SUPER_ADMIN:
|
if request.user.admin_type != SUPER_ADMIN and contest.created_by != request.user:
|
||||||
contest = contest.get(created_by=request.user)
|
return error_response(u"比赛不存在")
|
||||||
except Contest.DoesNotExist:
|
except Contest.DoesNotExist:
|
||||||
return error_response(u"比赛不存在")
|
return error_response(u"比赛不存在")
|
||||||
contest_problem = ContestProblem.objects.create(title=data["title"],
|
contest_problem = ContestProblem.objects.create(title=data["title"],
|
||||||
@ -238,8 +250,8 @@ class ContestProblemAdminAPIView(APIView):
|
|||||||
if contest_problem_id:
|
if contest_problem_id:
|
||||||
try:
|
try:
|
||||||
contest_problem = ContestProblem.objects.get(id=contest_problem_id)
|
contest_problem = ContestProblem.objects.get(id=contest_problem_id)
|
||||||
if request.user.admin_type != SUPER_ADMIN:
|
if request.user.admin_type != SUPER_ADMIN and contest_problem.created_by != request.user:
|
||||||
contest_problem = contest_problem.get(created_by=request.user)
|
return error_response(u"比赛题目不存在")
|
||||||
return success_response(ContestProblemSerializer(contest_problem).data)
|
return success_response(ContestProblemSerializer(contest_problem).data)
|
||||||
except ContestProblem.DoesNotExist:
|
except ContestProblem.DoesNotExist:
|
||||||
return error_response(u"比赛题目不存在")
|
return error_response(u"比赛题目不存在")
|
||||||
|
|||||||
@ -136,8 +136,8 @@ class ProblemAdminAPIView(APIView):
|
|||||||
# 普通管理员只能获取自己创建的题目
|
# 普通管理员只能获取自己创建的题目
|
||||||
# 超级管理员可以获取全部的题目
|
# 超级管理员可以获取全部的题目
|
||||||
problem = Problem.objects.get(id=problem_id)
|
problem = Problem.objects.get(id=problem_id)
|
||||||
if request.user.admin_type != SUPER_ADMIN:
|
if request.user.admin_type != SUPER_ADMIN and problem.created_by != request.user:
|
||||||
problem = problem.get(created_by=request.user)
|
return error_response(u"题目不存在")
|
||||||
return success_response(ProblemSerializer(problem).data)
|
return success_response(ProblemSerializer(problem).data)
|
||||||
except Problem.DoesNotExist:
|
except Problem.DoesNotExist:
|
||||||
return error_response(u"题目不存在")
|
return error_response(u"题目不存在")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user