From ac7ec743151f642d25ebef1bdf70d36ec14c65b8 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Tue, 25 Aug 2015 13:34:55 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=9A=84=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contest/views.py b/contest/views.py index 8c2e29f9..92cbd785 100644 --- a/contest/views.py +++ b/contest/views.py @@ -134,9 +134,9 @@ class ContestAdminAPIView(APIView): response_serializer: ContestSerializer """ if request.user.admin_type == SUPER_ADMIN: - contest = Contest.objects.all().order_by("-last_updated_time") + contest = Contest.objects.all().order_by("-create_time") else: - contest = Contest.objects.filter(created_by=request.user).order_by("-last_updated_time") + contest = Contest.objects.filter(created_by=request.user).order_by("-create_time") visible = request.GET.get("visible", None) if visible: contest = contest.filter(visible=(visible == "true")) From 5acd55b702a3a5f7250352d2f48607cbee59caa0 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Tue, 25 Aug 2015 13:35:06 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E9=A2=98=E7=9B=AE=E5=88=97=E8=A1=A8=E7=9A=84=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- template/oj/contest/contest_problem.html | 31 ++++++++++-------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/template/oj/contest/contest_problem.html b/template/oj/contest/contest_problem.html index cf2b7db3..f5b3cb1c 100644 --- a/template/oj/contest/contest_problem.html +++ b/template/oj/contest/contest_problem.html @@ -1,11 +1,13 @@ {% extends 'oj_base.html' %} {% block body %} -
+

{{ contest_problem.title }}

@@ -15,29 +17,22 @@

-
- +
+ -

{{ contest_problem.description|safe }}

-
-
- +

{{ contest_problem.description|safe }}

+
+
+ + +

{{ contest_problem.input_description }}

-
- -

{{ contest_problem.description|safe }}

-
-
- - -

{{ contest_problem.input_description }}

-
-

{{ contest_problem.output_description }}k

+

{{ contest_problem.output_description }}

{% for item in samples %}
From 1746fe7184346d3fb3fceed709f4dbc72bc6f9a5 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Tue, 25 Aug 2015 15:45:56 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=AF=94=E8=B5=9B=E6=8E=92=E5=90=8D=E7=9A=84=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=92=8C=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest/views.py | 33 ++++++------------------- mq/scripts/info.py | 3 +++ template/oj/contest/contest_rank.html | 35 ++++++++++++++++++++++++--- utils/templatetags/submission.py | 22 ++++++++++++++++- 4 files changed, 64 insertions(+), 29 deletions(-) diff --git a/contest/views.py b/contest/views.py index 92cbd785..67201933 100644 --- a/contest/views.py +++ b/contest/views.py @@ -300,7 +300,7 @@ def contest_problem_page(request, contest_id, contest_problem_id): contest_problem = ContestProblem.objects.get(id=contest_problem_id, visible=True) except ContestProblem.DoesNotExist: return error_page(request, u"比赛题目不存在") - warning = u"您已经提交过本题的正确答案!" + warning = u"您已经提交过本题的正确答案,重复提交可能造成时间累计。" show_warning = False try: submission = ContestSubmission.objects.get(user=request.user, contest=contest, problem=contest_problem) @@ -394,39 +394,22 @@ def _cmp(x, y): @check_user_contest_permission 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")) for i in range(0, len(result)): # 这个人所有的提交 submissions = ContestSubmission.objects.filter(user_id=result[i]["user_id"]) + result[i]["submissions"] = {} + for item in submissions: + result[i]["submissions"][item.problem_id] = item result[i]["total_ac"] = submissions.filter(ac=True).count() result[i]["user"] = User.objects.get(id=result[i]["user_id"]) - result[i]["submissions"] = submissions.order_by("problem__sort_index") result[i]["total_time"] = submissions.filter(ac=True).aggregate(total_time=Sum("total_time"))["total_time"] - print result - return render(request, "oj/contest/contest_rank.html") - # - # - # return - # contest = Contest.objects.get(id=contest_id) - # contest_submissions = ContestSubmission.objects.filter(contest=contest) - # result = {} - # # 先把数据按照用户id 为 key 整理一下 - # # {1: {"submissions": [], "total_time": 0, "total_ac": 0}} - # for item in contest_submissions: - # if item.user.id not in contest_submissions: - # result[item.user.id] = {"user": {"id": item.user.id, "username": item.user.username, - # "real_name": item.user.real_name}, - # "submissions": [], "total_time": 0, "total_ac": 0} - # result[item.user.id]["submissions"].append(ContestSubmissionSerializer(item).data) - # if item.ac: - # result[item.user.id]["total_time"] += item.total_time - # result[item.user.id]["total_ac"] += 1 - # l = [] - # for k, v in result.iteritems(): - # l.append(v) - # print sorted(l, cmp=_cmp, reverse=True) + return render(request, "oj/contest/contest_rank.html", + {"contest": contest, "contest_problems": contest_problems, "result": sorted(result, cmp=_cmp, reverse=True)}) diff --git a/mq/scripts/info.py b/mq/scripts/info.py index 661c3ff6..6634b5b3 100644 --- a/mq/scripts/info.py +++ b/mq/scripts/info.py @@ -61,9 +61,12 @@ class MessageQueue(object): logger.debug(contest.start_time) logger.debug(submission.create_time) logger.debug((submission.create_time - contest.start_time).total_seconds()) + logger.debug(int((submission.create_time - contest.start_time).total_seconds() / 60)) 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: diff --git a/template/oj/contest/contest_rank.html b/template/oj/contest/contest_rank.html index 89d1e409..823b021b 100644 --- a/template/oj/contest/contest_rank.html +++ b/template/oj/contest/contest_rank.html @@ -1,10 +1,10 @@ {% extends "oj_base.html" %} {% block body %} - {% load contest %} + {% load submission %}
+ + + + + + + + {% for item in contest_problems %} + + {% endfor %} + + + + {% for item in result %} + + + + + + {% for problem in contest_problems %} + + {% endfor %} + + {% endfor %} + +
#用户名AC / 总提交用时 + 罚时{{ item.sort_index }} +
{{ forloop.counter }}{{ item.user.username }}{{ item.total_ac }} / {{ item.total_submit }}{% if item.total_time %}{{ item.total_time }} min{% else %}--{% endif %} + {% submission_problem problem item.submissions %} +
diff --git a/utils/templatetags/submission.py b/utils/templatetags/submission.py index a80c25e6..b1f43d2d 100644 --- a/utils/templatetags/submission.py +++ b/utils/templatetags/submission.py @@ -29,7 +29,27 @@ def translate_result_class(value): return "danger" +def get_contest_submission_problem_detail(contest_problem, my_submission): + if contest_problem.id in my_submission: + submission = my_submission[contest_problem.id] + if submission.ac: + return u"\n 时间: " + str(submission.total_time) + u" min" + return "" + + +def get_submission_problem_result_class(contest_problem, my_submission): + if contest_problem.id in my_submission: + submission = my_submission[contest_problem.id] + if submission.ac: + return "success" + else: + return "danger" + else: + return "" + register = template.Library() register.filter("translate_result", translate_result) register.filter("translate_language", translate_language) -register.filter("translate_result_class", translate_result_class) \ No newline at end of file +register.filter("translate_result_class", translate_result_class) +register.simple_tag(get_contest_submission_problem_detail, name="submission_problem") +register.simple_tag(get_submission_problem_result_class, name="submission_problem_result_class") \ No newline at end of file From 89c42dac8544021a345b80e4b9cc761d3b835253 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Tue, 25 Aug 2015 16:11:04 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20fis-conf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 ++++- static/release/fis-conf.js | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 static/release/fis-conf.js diff --git a/.gitignore b/.gitignore index 73adda50..285cfd82 100644 --- a/.gitignore +++ b/.gitignore @@ -55,6 +55,9 @@ db.db db.sqlite3 .DS_Store log/ -release/ +static/release/css +static/release/js +static/release/img +build.txt tmp/ test_case/ \ No newline at end of file diff --git a/static/release/fis-conf.js b/static/release/fis-conf.js new file mode 100644 index 00000000..ce128cdd --- /dev/null +++ b/static/release/fis-conf.js @@ -0,0 +1,3 @@ +/** + * Created by virusdefender on 8/25/15. + */ From f5bca2428bd22a63b51a9ca9be082d756fb45900 Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Tue, 25 Aug 2015 16:18:24 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=BA=90=E7=A0=81?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/views.py | 2 +- oj/settings.py | 4 ++-- template/{ => src}/404.html | 0 template/{ => src}/500.html | 0 template/{ => src}/admin/admin.html | 0 template/{ => src}/admin/announcement/announcement.html | 0 template/{ => src}/admin/contest/add_contest.html | 0 template/{ => src}/admin/contest/contest_list.html | 0 template/{ => src}/admin/contest/edit_problem.html | 0 template/{ => src}/admin/group/group.html | 0 template/{ => src}/admin/group/group_detail.html | 0 template/{ => src}/admin/group/join_group_request_list.html | 0 template/{ => src}/admin/index/index.html | 0 template/{ => src}/admin/monitor/monitor.html | 0 template/{ => src}/admin/problem/add_problem.html | 0 template/{ => src}/admin/problem/edit_problem.html | 0 template/{ => src}/admin/problem/problem_list.html | 0 template/{ => src}/admin/problem/submission_list.html | 0 template/{ => src}/admin/user/user_list.html | 0 template/{ => src}/oj/account/change_password.html | 0 template/{ => src}/oj/account/login.html | 0 template/{ => src}/oj/account/register.html | 0 template/{ => src}/oj/account/reset_password.html | 0 template/{ => src}/oj/announcement/_announcement_panel.html | 0 template/{ => src}/oj/announcement/announcement.html | 0 template/{ => src}/oj/contest/_contest_header.html | 0 template/{ => src}/oj/contest/contest_index.html | 0 template/{ => src}/oj/contest/contest_list.html | 0 template/{ => src}/oj/contest/contest_problem.html | 0 template/{ => src}/oj/contest/contest_problems_list.html | 0 template/{ => src}/oj/contest/contest_rank.html | 0 template/{ => src}/oj/contest/my_submission.html | 0 template/{ => src}/oj/contest/my_submissions_list.html | 0 template/{ => src}/oj/contest/no_contest_permission.html | 0 template/{ => src}/oj/contest/submissions_list.html | 0 template/{ => src}/oj/index.html | 0 template/{ => src}/oj/problem/_problem_header.html | 0 template/{ => src}/oj/problem/my_submission.html | 0 template/{ => src}/oj/problem/my_submissions_list.html | 0 template/{ => src}/oj/problem/problem.html | 0 template/{ => src}/oj/problem/problem_list.html | 0 template/{ => src}/oj/submission/my_submissions_list.html | 0 template/{ => src}/oj_base.html | 0 template/{ => src}/utils/error.html | 0 44 files changed, 3 insertions(+), 3 deletions(-) rename template/{ => src}/404.html (100%) rename template/{ => src}/500.html (100%) rename template/{ => src}/admin/admin.html (100%) rename template/{ => src}/admin/announcement/announcement.html (100%) rename template/{ => src}/admin/contest/add_contest.html (100%) rename template/{ => src}/admin/contest/contest_list.html (100%) rename template/{ => src}/admin/contest/edit_problem.html (100%) rename template/{ => src}/admin/group/group.html (100%) rename template/{ => src}/admin/group/group_detail.html (100%) rename template/{ => src}/admin/group/join_group_request_list.html (100%) rename template/{ => src}/admin/index/index.html (100%) rename template/{ => src}/admin/monitor/monitor.html (100%) rename template/{ => src}/admin/problem/add_problem.html (100%) rename template/{ => src}/admin/problem/edit_problem.html (100%) rename template/{ => src}/admin/problem/problem_list.html (100%) rename template/{ => src}/admin/problem/submission_list.html (100%) rename template/{ => src}/admin/user/user_list.html (100%) rename template/{ => src}/oj/account/change_password.html (100%) rename template/{ => src}/oj/account/login.html (100%) rename template/{ => src}/oj/account/register.html (100%) rename template/{ => src}/oj/account/reset_password.html (100%) rename template/{ => src}/oj/announcement/_announcement_panel.html (100%) rename template/{ => src}/oj/announcement/announcement.html (100%) rename template/{ => src}/oj/contest/_contest_header.html (100%) rename template/{ => src}/oj/contest/contest_index.html (100%) rename template/{ => src}/oj/contest/contest_list.html (100%) rename template/{ => src}/oj/contest/contest_problem.html (100%) rename template/{ => src}/oj/contest/contest_problems_list.html (100%) rename template/{ => src}/oj/contest/contest_rank.html (100%) rename template/{ => src}/oj/contest/my_submission.html (100%) rename template/{ => src}/oj/contest/my_submissions_list.html (100%) rename template/{ => src}/oj/contest/no_contest_permission.html (100%) rename template/{ => src}/oj/contest/submissions_list.html (100%) rename template/{ => src}/oj/index.html (100%) rename template/{ => src}/oj/problem/_problem_header.html (100%) rename template/{ => src}/oj/problem/my_submission.html (100%) rename template/{ => src}/oj/problem/my_submissions_list.html (100%) rename template/{ => src}/oj/problem/problem.html (100%) rename template/{ => src}/oj/problem/problem_list.html (100%) rename template/{ => src}/oj/submission/my_submissions_list.html (100%) rename template/{ => src}/oj_base.html (100%) rename template/{ => src}/utils/error.html (100%) diff --git a/admin/views.py b/admin/views.py index b37d22d1..f8bc0c5d 100644 --- a/admin/views.py +++ b/admin/views.py @@ -7,7 +7,7 @@ from rest_framework.views import APIView class AdminTemplateView(APIView): def get(self, request, template_dir, template_name): - path = settings.TEMPLATE_DIRS[0] + "/admin/" + template_dir + "/" + template_name + ".html" + path = settings.TEMPLATES[0]["DIRS"][0] + "/admin/" + template_dir + "/" + template_name + ".html" try: return HttpResponse(open(path).read(), content_type="text/html") except IOError: diff --git a/oj/settings.py b/oj/settings.py index c3883ae0..cf4dafcf 100644 --- a/oj/settings.py +++ b/oj/settings.py @@ -78,7 +78,7 @@ ROOT_URLCONF = 'oj.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(BASE_DIR, 'template')], + 'DIRS': [os.path.join(BASE_DIR, 'template/src')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -116,7 +116,7 @@ STATIC_URL = '/static/' STATICFILES_DIRS = (os.path.join(BASE_DIR, "static/src/"),) TEMPLATE_DIRS = ( - os.path.join(BASE_DIR, "template"), + os.path.join(BASE_DIR, "template/src"), ) AUTH_USER_MODEL = 'account.User' diff --git a/template/404.html b/template/src/404.html similarity index 100% rename from template/404.html rename to template/src/404.html diff --git a/template/500.html b/template/src/500.html similarity index 100% rename from template/500.html rename to template/src/500.html diff --git a/template/admin/admin.html b/template/src/admin/admin.html similarity index 100% rename from template/admin/admin.html rename to template/src/admin/admin.html diff --git a/template/admin/announcement/announcement.html b/template/src/admin/announcement/announcement.html similarity index 100% rename from template/admin/announcement/announcement.html rename to template/src/admin/announcement/announcement.html diff --git a/template/admin/contest/add_contest.html b/template/src/admin/contest/add_contest.html similarity index 100% rename from template/admin/contest/add_contest.html rename to template/src/admin/contest/add_contest.html diff --git a/template/admin/contest/contest_list.html b/template/src/admin/contest/contest_list.html similarity index 100% rename from template/admin/contest/contest_list.html rename to template/src/admin/contest/contest_list.html diff --git a/template/admin/contest/edit_problem.html b/template/src/admin/contest/edit_problem.html similarity index 100% rename from template/admin/contest/edit_problem.html rename to template/src/admin/contest/edit_problem.html diff --git a/template/admin/group/group.html b/template/src/admin/group/group.html similarity index 100% rename from template/admin/group/group.html rename to template/src/admin/group/group.html diff --git a/template/admin/group/group_detail.html b/template/src/admin/group/group_detail.html similarity index 100% rename from template/admin/group/group_detail.html rename to template/src/admin/group/group_detail.html diff --git a/template/admin/group/join_group_request_list.html b/template/src/admin/group/join_group_request_list.html similarity index 100% rename from template/admin/group/join_group_request_list.html rename to template/src/admin/group/join_group_request_list.html diff --git a/template/admin/index/index.html b/template/src/admin/index/index.html similarity index 100% rename from template/admin/index/index.html rename to template/src/admin/index/index.html diff --git a/template/admin/monitor/monitor.html b/template/src/admin/monitor/monitor.html similarity index 100% rename from template/admin/monitor/monitor.html rename to template/src/admin/monitor/monitor.html diff --git a/template/admin/problem/add_problem.html b/template/src/admin/problem/add_problem.html similarity index 100% rename from template/admin/problem/add_problem.html rename to template/src/admin/problem/add_problem.html diff --git a/template/admin/problem/edit_problem.html b/template/src/admin/problem/edit_problem.html similarity index 100% rename from template/admin/problem/edit_problem.html rename to template/src/admin/problem/edit_problem.html diff --git a/template/admin/problem/problem_list.html b/template/src/admin/problem/problem_list.html similarity index 100% rename from template/admin/problem/problem_list.html rename to template/src/admin/problem/problem_list.html diff --git a/template/admin/problem/submission_list.html b/template/src/admin/problem/submission_list.html similarity index 100% rename from template/admin/problem/submission_list.html rename to template/src/admin/problem/submission_list.html diff --git a/template/admin/user/user_list.html b/template/src/admin/user/user_list.html similarity index 100% rename from template/admin/user/user_list.html rename to template/src/admin/user/user_list.html diff --git a/template/oj/account/change_password.html b/template/src/oj/account/change_password.html similarity index 100% rename from template/oj/account/change_password.html rename to template/src/oj/account/change_password.html diff --git a/template/oj/account/login.html b/template/src/oj/account/login.html similarity index 100% rename from template/oj/account/login.html rename to template/src/oj/account/login.html diff --git a/template/oj/account/register.html b/template/src/oj/account/register.html similarity index 100% rename from template/oj/account/register.html rename to template/src/oj/account/register.html diff --git a/template/oj/account/reset_password.html b/template/src/oj/account/reset_password.html similarity index 100% rename from template/oj/account/reset_password.html rename to template/src/oj/account/reset_password.html diff --git a/template/oj/announcement/_announcement_panel.html b/template/src/oj/announcement/_announcement_panel.html similarity index 100% rename from template/oj/announcement/_announcement_panel.html rename to template/src/oj/announcement/_announcement_panel.html diff --git a/template/oj/announcement/announcement.html b/template/src/oj/announcement/announcement.html similarity index 100% rename from template/oj/announcement/announcement.html rename to template/src/oj/announcement/announcement.html diff --git a/template/oj/contest/_contest_header.html b/template/src/oj/contest/_contest_header.html similarity index 100% rename from template/oj/contest/_contest_header.html rename to template/src/oj/contest/_contest_header.html diff --git a/template/oj/contest/contest_index.html b/template/src/oj/contest/contest_index.html similarity index 100% rename from template/oj/contest/contest_index.html rename to template/src/oj/contest/contest_index.html diff --git a/template/oj/contest/contest_list.html b/template/src/oj/contest/contest_list.html similarity index 100% rename from template/oj/contest/contest_list.html rename to template/src/oj/contest/contest_list.html diff --git a/template/oj/contest/contest_problem.html b/template/src/oj/contest/contest_problem.html similarity index 100% rename from template/oj/contest/contest_problem.html rename to template/src/oj/contest/contest_problem.html diff --git a/template/oj/contest/contest_problems_list.html b/template/src/oj/contest/contest_problems_list.html similarity index 100% rename from template/oj/contest/contest_problems_list.html rename to template/src/oj/contest/contest_problems_list.html diff --git a/template/oj/contest/contest_rank.html b/template/src/oj/contest/contest_rank.html similarity index 100% rename from template/oj/contest/contest_rank.html rename to template/src/oj/contest/contest_rank.html diff --git a/template/oj/contest/my_submission.html b/template/src/oj/contest/my_submission.html similarity index 100% rename from template/oj/contest/my_submission.html rename to template/src/oj/contest/my_submission.html diff --git a/template/oj/contest/my_submissions_list.html b/template/src/oj/contest/my_submissions_list.html similarity index 100% rename from template/oj/contest/my_submissions_list.html rename to template/src/oj/contest/my_submissions_list.html diff --git a/template/oj/contest/no_contest_permission.html b/template/src/oj/contest/no_contest_permission.html similarity index 100% rename from template/oj/contest/no_contest_permission.html rename to template/src/oj/contest/no_contest_permission.html diff --git a/template/oj/contest/submissions_list.html b/template/src/oj/contest/submissions_list.html similarity index 100% rename from template/oj/contest/submissions_list.html rename to template/src/oj/contest/submissions_list.html diff --git a/template/oj/index.html b/template/src/oj/index.html similarity index 100% rename from template/oj/index.html rename to template/src/oj/index.html diff --git a/template/oj/problem/_problem_header.html b/template/src/oj/problem/_problem_header.html similarity index 100% rename from template/oj/problem/_problem_header.html rename to template/src/oj/problem/_problem_header.html diff --git a/template/oj/problem/my_submission.html b/template/src/oj/problem/my_submission.html similarity index 100% rename from template/oj/problem/my_submission.html rename to template/src/oj/problem/my_submission.html diff --git a/template/oj/problem/my_submissions_list.html b/template/src/oj/problem/my_submissions_list.html similarity index 100% rename from template/oj/problem/my_submissions_list.html rename to template/src/oj/problem/my_submissions_list.html diff --git a/template/oj/problem/problem.html b/template/src/oj/problem/problem.html similarity index 100% rename from template/oj/problem/problem.html rename to template/src/oj/problem/problem.html diff --git a/template/oj/problem/problem_list.html b/template/src/oj/problem/problem_list.html similarity index 100% rename from template/oj/problem/problem_list.html rename to template/src/oj/problem/problem_list.html diff --git a/template/oj/submission/my_submissions_list.html b/template/src/oj/submission/my_submissions_list.html similarity index 100% rename from template/oj/submission/my_submissions_list.html rename to template/src/oj/submission/my_submissions_list.html diff --git a/template/oj_base.html b/template/src/oj_base.html similarity index 100% rename from template/oj_base.html rename to template/src/oj_base.html diff --git a/template/utils/error.html b/template/src/utils/error.html similarity index 100% rename from template/utils/error.html rename to template/src/utils/error.html From 4e649d54e4bb274ffe870f99af94bb4d1b29c08e Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Tue, 25 Aug 2015 22:56:07 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=A1=BA=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contest/views.py b/contest/views.py index 67201933..e23b50ec 100644 --- a/contest/views.py +++ b/contest/views.py @@ -338,7 +338,7 @@ def contest_list_page(request, page=1): 所有比赛的列表页 """ # 正常情况 - contests = Contest.objects.filter(visible=True) + contests = Contest.objects.filter(visible=True).order_by("-create_time") # 搜索的情况 keyword = request.GET.get("keyword", None)