From 7cf1df266e78da730e5ef2f7ef32811fe705d9a1 Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Sat, 5 Sep 2015 16:47:59 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B=E6=96=87=E4=BB=B6=E8=BF=87?= =?UTF-8?q?=E5=A4=A7=E6=97=B6=E5=BC=95=E5=8F=91memoryERROR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problem/views.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/problem/views.py b/problem/views.py index 2e9d172b..a295ad18 100644 --- a/problem/views.py +++ b/problem/views.py @@ -185,8 +185,12 @@ class TestCaseUploadAPIView(APIView): os.mkdir(test_case_dir) for name in l: f = open(test_case_dir + name, "wb") - f.write(test_case_file.read(name).replace("\r\n", "\n")) - f.close() + try: + f.write(test_case_file.read(name).replace("\r\n", "\n")) + except MemoryError: + return error_response(u"单个测试数据体积过大!") + finally: + f.close() l.sort() file_info = {"test_case_number": len(l) / 2, "test_cases": {}} From 152d949a147cfeb876b3ed007384202bbc48cc66 Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Sat, 5 Sep 2015 18:27:58 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86rank=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=80=BB=E6=8F=90=E4=BA=A4=E6=95=B0=E7=9A=84=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/src/oj/contest/contest_rank.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/src/oj/contest/contest_rank.html b/template/src/oj/contest/contest_rank.html index 823b021b..43c5444e 100644 --- a/template/src/oj/contest/contest_rank.html +++ b/template/src/oj/contest/contest_rank.html @@ -38,7 +38,7 @@ {{ forloop.counter }} {{ item.user.username }} - {{ item.total_ac }} / {{ item.total_submit }} + {{ item.total_ac }} / {{ item.total_submission_number }} {% if item.total_time %}{{ item.total_time }} min{% else %}--{% endif %} {% for problem in contest_problems %} From c163103542e87fb616df2d5b804854eeff2c5ea0 Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Sat, 5 Sep 2015 18:54:25 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E6=8E=92=E5=90=8D=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest/views.py | 2 +- template/src/oj/contest/contest_rank.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contest/views.py b/contest/views.py index e23b50ec..91aa8f71 100644 --- a/contest/views.py +++ b/contest/views.py @@ -396,7 +396,7 @@ def _cmp(x, y): def contest_rank_page(request, contest_id): contest = Contest.objects.get(id=contest_id) contest_problems = ContestProblem.objects.filter(contest=contest).order_by("sort_index") - result = ContestSubmission.objects.values("user_id").annotate(total_submit=Count("user_id")) + result = ContestSubmission.objects.values("user_id").annotate(total_submit=Sum("total_submission_number")) for i in range(0, len(result)): # 这个人所有的提交 submissions = ContestSubmission.objects.filter(user_id=result[i]["user_id"]) diff --git a/template/src/oj/contest/contest_rank.html b/template/src/oj/contest/contest_rank.html index 43c5444e..823b021b 100644 --- a/template/src/oj/contest/contest_rank.html +++ b/template/src/oj/contest/contest_rank.html @@ -38,7 +38,7 @@ {{ forloop.counter }} {{ item.user.username }} - {{ item.total_ac }} / {{ item.total_submission_number }} + {{ item.total_ac }} / {{ item.total_submit }} {% if item.total_time %}{{ item.total_time }} min{% else %}--{% endif %} {% for problem in contest_problems %} From 8785035a36dd674d676a09cee3a16849e83efbfd Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Sat, 5 Sep 2015 19:21:14 +0800 Subject: [PATCH 4/6] rank --- contest/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contest/views.py b/contest/views.py index 60334f38..a1176722 100644 --- a/contest/views.py +++ b/contest/views.py @@ -396,10 +396,10 @@ def _cmp(x, y): def contest_rank_page(request, contest_id): contest = Contest.objects.get(id=contest_id) contest_problems = ContestProblem.objects.filter(contest=contest).order_by("sort_index") - result = ContestSubmission.objects.values("user_id").annotate(total_submit=Sum("total_submission_number")) + result = ContestSubmission.objects.filter(contest=contest).values("user_id").annotate(total_submit=Sum("total_submission_number")) for i in range(0, len(result)): # 这个人所有的提交 - submissions = ContestSubmission.objects.filter(user_id=result[i]["user_id"]) + submissions = ContestSubmission.objects.filter(user_id=result[i]["user_id"], contest_id=contest_id) result[i]["submissions"] = {} for item in submissions: result[i]["submissions"][item.problem_id] = item From a7a808b192ff98d303ed52cdeca3fbafde4df04f Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Sat, 5 Sep 2015 19:33:32 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=98=9F=E5=88=97?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=AF=94=E8=B5=9B=E6=8F=90=E4=BA=A4=E6=97=B6?= =?UTF-8?q?=E5=80=99=E7=9A=84bug,=E5=8E=9F=E6=9D=A5=E6=80=BB=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=95=B0=E5=8A=A0=E4=B8=80=E4=BB=85=E5=9C=A8=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E4=B8=BAaccepted=E6=97=B6=E8=BF=9B=E8=A1=8C,=E5=B0=B1?= =?UTF-8?q?=E6=BC=8F=E4=BA=86=E6=89=80=E6=9C=89=E7=9A=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E4=BA=A4,=E5=B7=B2=E4=BF=AE=E6=AD=A3~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mq/scripts/info.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mq/scripts/info.py b/mq/scripts/info.py index 6634b5b3..fd4d82b6 100644 --- a/mq/scripts/info.py +++ b/mq/scripts/info.py @@ -52,6 +52,8 @@ class MessageQueue(object): try: contest_submission = ContestSubmission.objects.get(user_id=submission.user_id, contest=contest, problem_id=contest_problem.id) + # 提交次数加1 + contest_submission.total_submission_number += 1 if submission.result == result["accepted"]: @@ -65,8 +67,6 @@ class MessageQueue(object): contest_submission.total_time += int((submission.create_time - contest.start_time).total_seconds() / 60) # 标记为已经通过 contest_submission.ac = True - # 提交次数加1 - contest_submission.total_submission_number += 1 # contest problem ac 计数器加1 contest_problem.total_accepted_number += 1 else: From fd0d5be3bfb635bae7c0a57a8287298b9c088a3a Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Sat, 5 Sep 2015 19:40:34 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=B7=B2AC=E7=9A=84=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E6=8F=90=E4=BA=A4=E9=94=99=E4=BA=86=E4=BC=9A?= =?UTF-8?q?=E6=8A=8AAC=E7=8A=B6=E6=80=81=E5=8E=BB=E6=8E=89,=E8=BF=99?= =?UTF-8?q?=E4=B8=8D=E7=AC=A6=E5=90=88=E9=80=BB=E8=BE=91,=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mq/scripts/info.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mq/scripts/info.py b/mq/scripts/info.py index fd4d82b6..119845c0 100644 --- a/mq/scripts/info.py +++ b/mq/scripts/info.py @@ -71,7 +71,6 @@ class MessageQueue(object): contest_problem.total_accepted_number += 1 else: # 如果这个提交是错误的,就罚时20分钟 - contest_submission.ac = False contest_submission.total_time += 20 contest_submission.save() contest_problem.save()