diff --git a/contest/views.py b/contest/views.py index ae288cc3..42ecd62e 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 eb4a3bb7..6399e22b 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 69991adb..32b0617a 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 1b40095c..23cefd71 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 0f4e49e7..00000000 --- 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 6c106e9a..a26ae80b 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 }}