From f58c1e6d9e920d8b2a7f8a7c77328d9550633bfe Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Sun, 23 Aug 2015 20:45:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest/views.py | 14 +++++++++++--- submission/views.py | 5 ++--- template/oj/contest/contest_problem.html | 4 ++++ template/oj/contest/contest_problems_list.html | 13 +++++++------ template/oj/contest/problems.html | 15 --------------- template/oj/problem/problem_list.html | 6 +++--- 6 files changed, 27 insertions(+), 30 deletions(-) delete mode 100644 template/oj/contest/problems.html diff --git a/contest/views.py b/contest/views.py index ae288cc..42ecd62 100644 --- a/contest/views.py +++ b/contest/views.py @@ -17,7 +17,7 @@ from account.decorators import login_required from group.models import Group from announcement.models import Announcement -from .models import Contest, ContestProblem +from .models import Contest, ContestProblem, ContestSubmission from .decorators import check_user_contest_permission from .serializers import (CreateContestSerializer, ContestSerializer, EditContestSerializer, CreateContestProblemSerializer, ContestProblemSerializer, @@ -263,17 +263,25 @@ def contest_page(request, contest_id): return render(request, "oj/contest/contest_index.html", {"contest": contest}) +@check_user_contest_permission def contest_problem_page(request, contest_id, contest_problem_id): try: - Contest.objects.get(id=contest_id) + contest = Contest.objects.get(id=contest_id) except Contest.DoesNotExist: return error_page(request, u"比赛不存在") try: contest_problem = ContestProblem.objects.get(id=contest_problem_id, visible=True) except ContestProblem.DoesNotExist: return error_page(request, u"比赛题目不存在") + show_warning = False + try: + submission = ContestSubmission.objects.get(user=request.user, contest=contest, problem=contest_problem) + show_warning = submission.ac + except ContestSubmission.DoesNotExist: + pass return render(request, "oj/contest/contest_problem.html", {"contest_problem": contest_problem, - "samples": json.loads(contest_problem.samples)}) + "samples": json.loads(contest_problem.samples), + "show_warning": show_warning}) @check_user_contest_permission diff --git a/submission/views.py b/submission/views.py index eb4a3bb..6399e22 100644 --- a/submission/views.py +++ b/submission/views.py @@ -93,8 +93,7 @@ def contest_problem_my_submissions_list_page(request, contest_id, contest_proble contest_problem = ContestProblem.objects.get(id=contest_problem_id, visible=True) except Problem.DoesNotExist: return error_page(request, u"比赛问题不存在") - submissions = Submission.objects.filter(user_id=request.user.id, problem_id=contest_problem.id).order_by( - "-create_time"). \ + submissions = Submission.objects.filter(user_id=request.user.id, problem_id=contest_problem.id).order_by("-create_time"). \ values("id", "result", "create_time", "accepted_answer_time", "language") return render(request, "oj/contest/my_submissions_list.html", {"submissions": submissions, "contest_problem": contest_problem}) @@ -160,7 +159,7 @@ def my_submission_list_page(request, page=1): class ContestSubmissionAPIView(APIView): - # @check_user_contest_permission + @check_user_contest_permission def post(self, request): """ 创建比赛的提交 diff --git a/template/oj/contest/contest_problem.html b/template/oj/contest/contest_problem.html index 69991ad..32b0617 100644 --- a/template/oj/contest/contest_problem.html +++ b/template/oj/contest/contest_problem.html @@ -81,6 +81,7 @@
+
+ {% if show_warning %} + + {% endif %}
diff --git a/template/oj/contest/contest_problems_list.html b/template/oj/contest/contest_problems_list.html index 1b40095..23cefd7 100644 --- a/template/oj/contest/contest_problems_list.html +++ b/template/oj/contest/contest_problems_list.html @@ -21,8 +21,6 @@ 排名 - -
@@ -40,11 +38,14 @@ {% for item in contest_problems %} - - {{ item.sort_index }} + + - {{ item.title }} + + {{ item.sort_index }} + + + {{ item.title }} {{ item|accepted_radio }} diff --git a/template/oj/contest/problems.html b/template/oj/contest/problems.html deleted file mode 100644 index 0f4e49e..0000000 --- a/template/oj/contest/problems.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "oj_base.html" %} -{% block body %} -
- -

第一次比赛

- -

开始时间: 2015-6-8 19:00 结束时间: 2015-9-1 12:00

- -
-{% endblock %} \ No newline at end of file diff --git a/template/oj/problem/problem_list.html b/template/oj/problem/problem_list.html index 6c106e9..a26ae80 100644 --- a/template/oj/problem/problem_list.html +++ b/template/oj/problem/problem_list.html @@ -22,15 +22,15 @@ # 题目 难度 - 通过率 + 通过率 {% for item in problems %} - {{ item.id }} - {{ item.title }} + {{ item.id }} + {{ item.title }} {{ item.difficulty }} {{ item|accepted_radio }}