修改部分前端样式

This commit is contained in:
virusdefender 2015-08-23 20:45:51 +08:00
parent f682aa1fb3
commit f58c1e6d9e
6 changed files with 27 additions and 30 deletions

View File

@ -17,7 +17,7 @@ from account.decorators import login_required
from group.models import Group from group.models import Group
from announcement.models import Announcement from announcement.models import Announcement
from .models import Contest, ContestProblem from .models import Contest, ContestProblem, ContestSubmission
from .decorators import check_user_contest_permission from .decorators import check_user_contest_permission
from .serializers import (CreateContestSerializer, ContestSerializer, EditContestSerializer, from .serializers import (CreateContestSerializer, ContestSerializer, EditContestSerializer,
CreateContestProblemSerializer, ContestProblemSerializer, CreateContestProblemSerializer, ContestProblemSerializer,
@ -263,17 +263,25 @@ def contest_page(request, contest_id):
return render(request, "oj/contest/contest_index.html", {"contest": contest}) return render(request, "oj/contest/contest_index.html", {"contest": contest})
@check_user_contest_permission
def contest_problem_page(request, contest_id, contest_problem_id): def contest_problem_page(request, contest_id, contest_problem_id):
try: try:
Contest.objects.get(id=contest_id) contest = Contest.objects.get(id=contest_id)
except Contest.DoesNotExist: except Contest.DoesNotExist:
return error_page(request, u"比赛不存在") return error_page(request, u"比赛不存在")
try: try:
contest_problem = ContestProblem.objects.get(id=contest_problem_id, visible=True) contest_problem = ContestProblem.objects.get(id=contest_problem_id, visible=True)
except ContestProblem.DoesNotExist: except ContestProblem.DoesNotExist:
return error_page(request, u"比赛题目不存在") 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, 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 @check_user_contest_permission

View File

@ -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) contest_problem = ContestProblem.objects.get(id=contest_problem_id, visible=True)
except Problem.DoesNotExist: except Problem.DoesNotExist:
return error_page(request, u"比赛问题不存在") return error_page(request, u"比赛问题不存在")
submissions = Submission.objects.filter(user_id=request.user.id, problem_id=contest_problem.id).order_by( submissions = Submission.objects.filter(user_id=request.user.id, problem_id=contest_problem.id).order_by("-create_time"). \
"-create_time"). \
values("id", "result", "create_time", "accepted_answer_time", "language") values("id", "result", "create_time", "accepted_answer_time", "language")
return render(request, "oj/contest/my_submissions_list.html", return render(request, "oj/contest/my_submissions_list.html",
{"submissions": submissions, "contest_problem": contest_problem}) {"submissions": submissions, "contest_problem": contest_problem})
@ -160,7 +159,7 @@ def my_submission_list_page(request, page=1):
class ContestSubmissionAPIView(APIView): class ContestSubmissionAPIView(APIView):
# @check_user_contest_permission @check_user_contest_permission
def post(self, request): def post(self, request):
""" """
创建比赛的提交 创建比赛的提交

View File

@ -81,6 +81,7 @@
<textarea id="code-editor"></textarea> <textarea id="code-editor"></textarea>
</div> </div>
<hr> <hr>
<div id="submit-code"> <div id="submit-code">
<button type="button" class="btn btn-primary" id="submit-code-button"> <button type="button" class="btn btn-primary" id="submit-code-button">
提交代码 提交代码
@ -88,6 +89,9 @@
<img src="/static/img/loading.gif" id="loading-gif"> <img src="/static/img/loading.gif" id="loading-gif">
</div> </div>
{% if show_warning %}
<div class="alert alert-success" role="alert">您已经提交过本题的正确答案了!</div>
{% endif %}
<div id="result"> <div id="result">
</div> </div>

View File

@ -21,8 +21,6 @@
<a href="/contest/{{ contest.id }}/rank/">排名</a> <a href="/contest/{{ contest.id }}/rank/">排名</a>
</li> </li>
</ul> </ul>
</div> </div>
<div class="col-lg-9"> <div class="col-lg-9">
@ -40,11 +38,14 @@
<tbody> <tbody>
{% for item in contest_problems %} {% for item in contest_problems %}
<tr> <tr>
<th><span class="glyphicon glyphicon-ok ac-flag"></span></th> <th>
<th scope="row"><a <span class="glyphicon glyphicon-ok ac-flag"></span>
href="/contest/{{ item.contest.id }}/problem/{{ item.id }}/">{{ item.sort_index }}</a>
</th> </th>
<td><a href="/contest/{{ item.contest.id }}/problem/{{ item.id }}/">{{ item.title }}</a> <th scope="row">
<a href="/contest/{{ item.contest.id }}/problem/{{ item.id }}/" target="_blank">{{ item.sort_index }}</a>
</th>
<td>
<a href="/contest/{{ item.contest.id }}/problem/{{ item.id }}/" target="_blank">{{ item.title }}</a>
</td> </td>
<td>{{ item|accepted_radio }}</td> <td>{{ item|accepted_radio }}</td>
</tr> </tr>

View File

@ -1,15 +0,0 @@
{% extends "oj_base.html" %}
{% block body %}
<div class="container main">
<ul class="nav nav-tabs nav-tabs-google">
<li role="presentation" class="active">
<a href="problem.html">题目</a></li>
<li role="presentation"><a href="my_solutions_list.html">我的提交</a></li>
<li role="presentation"><a href="#">排名</a></li>
</ul>
<h2 class="text-center">第一次比赛</h2>
<p class="text-muted text-center"><b>开始时间:</b> 2015-6-8 19:00 <b>结束时间:</b> 2015-9-1 12:00</p>
</div>
{% endblock %}

View File

@ -22,15 +22,15 @@
<th>#</th> <th>#</th>
<th>题目</th> <th>题目</th>
<th><a href="/problems/?order_by=difficulty">难度</a></th> <th><a href="/problems/?order_by=difficulty">难度</a></th>
<th><a href="/problems/?order_by=aceptance">通过率</a></th> <th><a href="/problems/?order_by=acceptance">通过率</a></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for item in problems %} {% for item in problems %}
<tr> <tr>
<th><span class="glyphicon glyphicon-ok ac-flag"></span></th> <th><span class="glyphicon glyphicon-ok ac-flag"></span></th>
<th scope="row"><a href="/problem/{{ item.id }}/">{{ item.id }}</a></th> <th scope="row"><a href="/problem/{{ item.id }}/" target="_blank">{{ item.id }}</a></th>
<td><a href="/problem/{{ item.id }}/">{{ item.title }}</a></td> <td><a href="/problem/{{ item.id }}/" target="_blank">{{ item.title }}</a></td>
<td>{{ item.difficulty }}</td> <td>{{ item.difficulty }}</td>
<td>{{ item|accepted_radio }}</td> <td>{{ item|accepted_radio }}</td>
</tr> </tr>