From 951744a7cdcc87b15d1a0a69ba92c3d3745a8700 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Sun, 13 Mar 2016 12:08:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E9=A2=98=E7=BB=93=E6=9E=9C=E6=8C=89?= =?UTF-8?q?=E7=85=A7=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- judge/client.py | 1 + submission/views.py | 13 ++++---- template/src/oj/submission/my_submission.html | 32 ++++++++++++++++--- 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/judge/client.py b/judge/client.py index ac6309d..3c57778 100644 --- a/judge/client.py +++ b/judge/client.py @@ -93,6 +93,7 @@ class JudgeClient(object): env=["PATH=" + os.environ["PATH"]], use_sandbox=self._language["use_sandbox"], use_nobody=True) + run_result["test_case"] = test_case_id if run_result["flag"] == 0: output_md5, r = self._compare_output(test_case_id) if r: diff --git a/submission/views.py b/submission/views.py index 53233dc..cf14c38 100644 --- a/submission/views.py +++ b/submission/views.py @@ -17,6 +17,7 @@ from contest.models import ContestProblem, Contest from contest.decorators import check_user_contest_permission from utils.shortcuts import serializer_invalid_response, error_response, success_response, error_page, paginate from utils.throttling import TokenBucket, BucketController +from judge.result import result as judge_result from .tasks import _judge from .models import Submission from .serializers import (CreateSubmissionSerializer, SubmissionSerializer, @@ -211,13 +212,13 @@ def my_submission(request, submission_id): except Exception: return error_page(request, u"提交不存在") - if submission.info: - try: - info = json.loads(submission.info) - except Exception: - info = submission.info + if submission.result in [judge_result["compile_error"], judge_result["system_error"], judge_result["waiting"]]: + info = submission.info else: - info = None + info = json.loads(submission.info) + if "test_case" in info[0]: + info = sorted(info, key=lambda x: x["test_case"]) + user = User.objects.get(id=submission.user_id) return render(request, "oj/submission/my_submission.html", {"submission": submission, "problem": problem, "info": info, diff --git a/template/src/oj/submission/my_submission.html b/template/src/oj/submission/my_submission.html index 04bbe4b..c0c099c 100644 --- a/template/src/oj/submission/my_submission.html +++ b/template/src/oj/submission/my_submission.html @@ -59,12 +59,36 @@ {% ifequal submission.result 7 %}
System Error: {{ submission.info }}
{% else %}
- {{ info }}
+ {% ifequal submission.result 4 %}
+ Compile error: {{ info }}
+ {% else %}
+ {% ifequal submission.result 8 %}
+ Waiting+ {% else %} +
| 测试用例 | +CPU时间 | +内存 | +结果 | +
|---|---|---|---|
| {{ item.test_case }} | +{{ item.cpu_time }} ms | +{{ item.memory }} Byte | +{{ item.result|translate_result }} | +