mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 00:13:18 +00:00
修改submission api
This commit is contained in:
parent
b931724c9b
commit
12ee85ef8f
@ -3,9 +3,5 @@ from django.conf.urls import url
|
|||||||
from ..views.oj import (SubmissionAPI, SubmissionListAPI, SubmissionDetailAPI)
|
from ..views.oj import (SubmissionAPI, SubmissionListAPI, SubmissionDetailAPI)
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r"^submission/?$", SubmissionAPI.as_view(), name="submission_api"),
|
url(r"^submissions/?$", SubmissionAPI.as_view(), name="submission_api"),
|
||||||
url(r"^submission/(?P<submission_id>\w+)/?$", SubmissionDetailAPI.as_view(), name="submission_detail_api"),
|
|
||||||
url(r"^submissions/?$", SubmissionListAPI.as_view(), name="submission_list_api"),
|
|
||||||
url(r"^submissions/(?P<page>\d+)/?$", SubmissionListAPI.as_view(), name="submission_list_page_api"),
|
|
||||||
# MyProblemSubmissionListAPI
|
|
||||||
]
|
]
|
||||||
|
@ -37,7 +37,7 @@ def _submit(response, user, problem_id, language, code, contest_id=None):
|
|||||||
code=code,
|
code=code,
|
||||||
problem_id=problem.id,
|
problem_id=problem.id,
|
||||||
contest_id=contest_id)
|
contest_id=contest_id)
|
||||||
# 暂时保留 方便排错
|
# todo 暂时保留 方便排错
|
||||||
# JudgeDispatcher(submission.id, problem.id).judge()
|
# JudgeDispatcher(submission.id, problem.id).judge()
|
||||||
judge_task.delay(submission.id, problem.id)
|
judge_task.delay(submission.id, problem.id)
|
||||||
return response.success({"submission_id": submission.id})
|
return response.success({"submission_id": submission.id})
|
||||||
@ -53,40 +53,28 @@ class SubmissionAPI(APIView):
|
|||||||
@login_required
|
@login_required
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
submission_id = request.GET.get("id")
|
submission_id = request.GET.get("id")
|
||||||
if not submission_id:
|
if submission_id:
|
||||||
return self.error("Parameter error")
|
|
||||||
try:
|
try:
|
||||||
submission = Submission.objects.get(id=submission_id, user_id=request.user.id)
|
submission = Submission.objects.get(id=submission_id, user_id=request.user.id)
|
||||||
except Submission.DoesNotExist:
|
except Submission.DoesNotExist:
|
||||||
return self.error("Submission not exist")
|
return self.error("Submission not exist")
|
||||||
return self.success(SubmissionModelSerializer(submission).data)
|
return self.success(SubmissionModelSerializer(submission).data)
|
||||||
|
|
||||||
|
problem_id = request.GET.get('problem_id')
|
||||||
|
subs = Submission.objects.filter(contest_id__isnull=True)
|
||||||
|
if problem_id:
|
||||||
|
subs = subs.filter(problem_id=problem_id)
|
||||||
|
|
||||||
class MyProblemSubmissionListAPI(APIView):
|
if request.GET.get('myself'):
|
||||||
"""
|
subs = subs.filter(user_id=request.user.id)
|
||||||
用户单个题目的全部提交列表
|
# todo: paginate
|
||||||
"""
|
return self.success(SubmissionModelSerializer(subs, many=True).data)
|
||||||
|
|
||||||
def get(self, request):
|
|
||||||
problem_id = request.GET.get("problem_id")
|
|
||||||
try:
|
|
||||||
problem = Problem.objects.get(id=problem_id, visible=True)
|
|
||||||
except Problem.DoesNotExist:
|
|
||||||
return self.error("Problem not exist")
|
|
||||||
|
|
||||||
submissions = Submission.objects.filter(user_id=request.user.id, problem_id=problem.id,
|
|
||||||
contest_id__isnull=True). \
|
|
||||||
order_by("-created_time"). \
|
|
||||||
values("id", "result", "created_time", "accepted_time", "language")
|
|
||||||
|
|
||||||
return self.success({"submissions": submissions, "problem": problem})
|
|
||||||
|
|
||||||
|
|
||||||
class SubmissionListAPI(APIView):
|
class SubmissionListAPI(APIView):
|
||||||
"""
|
"""
|
||||||
所有提交的列表
|
所有提交的列表
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def get(self, request, **kwargs):
|
def get(self, request, **kwargs):
|
||||||
submission_filter = {"my": None, "user_id": None}
|
submission_filter = {"my": None, "user_id": None}
|
||||||
show_all = False
|
show_all = False
|
||||||
|
Loading…
Reference in New Issue
Block a user