fix problem admin filter bug

This commit is contained in:
zhanghedr
2017-02-26 23:35:46 -05:00
parent 60ebece853
commit 808b92780f
2 changed files with 7 additions and 7 deletions

View File

@@ -5,5 +5,5 @@ from ..views.admin import ProblemAPI, TestCaseUploadAPI, ContestProblemAPI
urlpatterns = [ urlpatterns = [
url(r"^test_case/upload$", TestCaseUploadAPI.as_view(), name="test_case_upload_api"), url(r"^test_case/upload$", TestCaseUploadAPI.as_view(), name="test_case_upload_api"),
url(r"^problem$", ProblemAPI.as_view(), name="problem_api"), url(r"^problem$", ProblemAPI.as_view(), name="problem_api"),
url(r'contest/problem$', ContestProblemAPI.as_view(), name="contest_problem_api") url(r"^contest/problem$", ContestProblemAPI.as_view(), name="contest_problem_api")
] ]

View File

@@ -162,15 +162,15 @@ class ProblemAPI(APIView):
if problem_id: if problem_id:
try: try:
problem = Problem.objects.get(id=problem_id) problem = Problem.objects.get(id=problem_id)
if not user.can_mgmt_all_problem(): if not user.can_mgmt_all_problem() and problem.created_by != user:
problem = problem.get(created_by=request.user) return self.error("Problem does not exist")
return self.success(ProblemSerializer(problem).data) return self.success(ProblemSerializer(problem).data)
except Problem.DoesNotExist: except Problem.DoesNotExist:
return self.error("Problem does not exist") return self.error("Problem does not exist")
problems = Problem.objects.all().order_by("-create_time") problems = Problem.objects.all().order_by("-create_time")
if not user.can_mgmt_all_problem(): if not user.can_mgmt_all_problem():
problems = problems.filter(created_by=request.user) problems = problems.filter(created_by=user)
keyword = request.GET.get("keyword") keyword = request.GET.get("keyword")
if keyword: if keyword:
problems = problems.filter(title__contains=keyword) problems = problems.filter(title__contains=keyword)
@@ -185,8 +185,8 @@ class ProblemAPI(APIView):
try: try:
problem = Problem.objects.get(id=problem_id) problem = Problem.objects.get(id=problem_id)
if not user.can_mgmt_all_problem(): if not user.can_mgmt_all_problem() and problem.created_by != user:
problem = problem.get(created_by=request.user) return self.error("Problem does not exist")
except Problem.DoesNotExist: except Problem.DoesNotExist:
return self.error("Problem does not exist") return self.error("Problem does not exist")
@@ -290,7 +290,7 @@ class ContestProblemAPI(APIView):
if problem_id: if problem_id:
try: try:
problem = ContestProblem.objects.get(id=problem_id) problem = ContestProblem.objects.get(id=problem_id)
if request.user.is_admin() and problem.contest.created_by != user: if user.is_admin() and problem.contest.created_by != user:
return self.error("Problem does not exist") return self.error("Problem does not exist")
except ContestProblem.DoesNotExist: except ContestProblem.DoesNotExist:
return self.error("Problem does not exist") return self.error("Problem does not exist")