OnlineJudge/submission/views/admin.py

25 lines
876 B
Python
Raw Normal View History

2017-11-24 02:27:34 +00:00
from account.decorators import super_admin_required
from judge.tasks import judge_task
# from judge.dispatcher import JudgeDispatcher
from utils.api import APIView
from ..models import Submission, JudgeStatus
class SubmissionRejudgeAPI(APIView):
@super_admin_required
def get(self, request):
id = request.GET.get("id")
if not id:
return self.error("Paramater error, id is required")
try:
submission = Submission.objects.select_related("problem").get(id=id, contest_id__isnull=True)
except Submission.DoesNotExist:
return self.error("Submission does not exists")
submission.result = JudgeStatus.PENDING
submission.info = {}
submission.statistic_info = {}
submission.save()
judge_task.delay(submission.id, submission.problem.id)
return self.success()