设置是否显示全部的提交列表

This commit is contained in:
virusdefender 2016-04-23 23:04:32 +08:00
parent a3ca1bb22e
commit 4e6465ff26
No known key found for this signature in database
GPG Key ID: 1686FB5677979E61
3 changed files with 26 additions and 12 deletions

View File

@ -184,3 +184,6 @@ TOKEN_BUCKET_DEFAULT_CAPACITY = 50
# 单位:每分钟
TOKEN_BUCKET_FILL_RATE = 2
# 是否显示所有人的提交, False就只显示自己的
SHOW_ALL_SUBMISSIONS_LIST = False

View File

@ -242,8 +242,8 @@ def my_submission_list_page(request, page=1):
"""
我的所有提交的列表页
"""
# 显示所有人的提交 这是管理员的调试功能
show_all = request.GET.get("show_all", False) == "true" and request.user.admin_type == SUPER_ADMIN
# 是否显示所有人的提交
show_all = settings.SHOW_ALL_SUBMISSIONS_LIST or request.GET.get("show_all", False) == "true"
if show_all:
submissions = Submission.objects.filter(contest_id__isnull=True)
else:
@ -261,6 +261,12 @@ def my_submission_list_page(request, page=1):
submissions = submissions.filter(result=int(result))
filter = {"name": "result", "content": result}
paginator = Paginator(submissions, 20)
try:
submissions = paginator.page(int(page))
except Exception:
return error_page(request, u"不存在的页码")
# 因为提交页面经常会有重复的题目和用户,缓存一下查询结果
cache_result = {"problem": {}, "user": {}}
for item in submissions:
@ -277,23 +283,23 @@ def my_submission_list_page(request, page=1):
cache_result["user"][user_id] = user
item["user"] = cache_result["user"][user_id]
paginator = Paginator(submissions, 20)
try:
current_page = paginator.page(int(page))
except Exception:
return error_page(request, u"不存在的页码")
if item["user"].id == request.user.id or request.user.admin_type == SUPER_ADMIN:
item["show_link"] = True
else:
item["show_link"] = False
previous_page = next_page = None
try:
previous_page = current_page.previous_page_number()
previous_page = submissions.previous_page_number()
except Exception:
pass
try:
next_page = current_page.next_page_number()
next_page = submissions.next_page_number()
except Exception:
pass
return render(request, "oj/submission/my_submissions_list.html",
{"submissions": current_page, "page": int(page),
{"submissions": submissions, "page": int(page),
"previous_page": previous_page, "next_page": next_page, "start_id": int(page) * 20 - 20,
"filter": filter, "show_all": show_all})

View File

@ -10,6 +10,7 @@
<thead>
<tr>
<th>#</th>
{% if show_all %}<th>用户</th>{% endif %}
<th>题目名称</th>
<th>提交时间</th>
<th>
@ -51,9 +52,13 @@
{% for item in submissions %}
<tr>
<th scope="row">
{% if item.show_link %}
<a href="/submission/{{ item.id }}/">{{ forloop.counter |add:start_id }}</a>
{% if show_all %}{{ item.user.username }}{% endif %}
{% else %}
{{ forloop.counter |add:start_id }}
{% endif %}
</th>
{% if show_all %}<td><a href="/user/{{ item.user.username }}">{{ item.user.username }}</a></td>{% endif %}
<td>
<a href="/problem/{{ item.problem_id }}/">{{ item.title }}</a>
</td>