From 94282f3ed859fc0ffc3fde830fe3c22d203ae0aa Mon Sep 17 00:00:00 2001 From: virusdefender <1670873886@qq.com> Date: Thu, 13 Aug 2015 21:02:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=91=E7=9A=84=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oj/settings.py | 1 + oj/urls.py | 6 +- submission/templatetags/__init__.py | 1 + submission/templatetags/submission.py | 28 +++++++++ submission/views.py | 4 +- template/oj/problem/my_solutions_list.html | 53 ---------------- template/oj/problem/my_submissions_list.html | 64 ++++++++++++++++++++ template/oj/problem/problem.html | 4 +- 8 files changed, 101 insertions(+), 60 deletions(-) create mode 100644 submission/templatetags/__init__.py create mode 100644 submission/templatetags/submission.py delete mode 100644 template/oj/problem/my_solutions_list.html create mode 100644 template/oj/problem/my_submissions_list.html diff --git a/oj/settings.py b/oj/settings.py index 01bbadca..8d012d03 100644 --- a/oj/settings.py +++ b/oj/settings.py @@ -51,6 +51,7 @@ INSTALLED_APPS = ( 'group', 'problem', 'admin', + 'submission', 'rest_framework', 'rest_framework_swagger', diff --git a/oj/urls.py b/oj/urls.py index 67755dfd..78791d5a 100644 --- a/oj/urls.py +++ b/oj/urls.py @@ -42,7 +42,7 @@ urlpatterns = [ name="add_contest_page"), url(r'^problems/$', TemplateView.as_view(template_name="oj/problem/problem_list.html"), name="problem_list_page"), - url(r'^admin/template/(?P\w+)/(?P\w+).html', AdminTemplateView.as_view(), + url(r'^admin/template/(?P\w+)/(?P\w+).html$', AdminTemplateView.as_view(), name="admin_template"), url(r'^api/admin/group/$', GroupAdminAPIView.as_view(), name="group_admin_api"), url(r'^api/admin/group_member/$', GroupMemberAdminAPIView.as_view(), name="group_member_admin_api"), @@ -50,9 +50,9 @@ urlpatterns = [ url(r'^api/admin/problem/$', ProblemAdminAPIView.as_view(), name="problem_admin_api"), url(r'^api/admin/test_case_upload/$', TestCaseUploadAPIView.as_view(), name="test_case_upload_api"), url(r'^api/admin/tag/$', ProblemTagAdminAPIView.as_view(), name="problem_tag_admin_api"), - url(r'^problem/(?P\d+)/my_solutions/', "submission.views.problem_my_submissions_list_page", + url(r'^problem/(?P\d+)/my_solutions/$', "submission.views.problem_my_submissions_list_page", name="problem_my_submissions_page"), - url(r'^my_solution/(?P\d+)/$', "submission.views.my_submission", name="my_submission_page"), + url(r'^my_solution/(?P\w+)/$', "submission.views.my_submission", name="my_submission_page"), url(r'^api/admin/join_group_request/$', JoinGroupRequestAdminAPIView.as_view(), name="join_group_request_admin_api"), diff --git a/submission/templatetags/__init__.py b/submission/templatetags/__init__.py new file mode 100644 index 00000000..9bad5790 --- /dev/null +++ b/submission/templatetags/__init__.py @@ -0,0 +1 @@ +# coding=utf-8 diff --git a/submission/templatetags/submission.py b/submission/templatetags/submission.py new file mode 100644 index 00000000..51806f04 --- /dev/null +++ b/submission/templatetags/submission.py @@ -0,0 +1,28 @@ +# coding=utf-8 + + +def translate_result(value): + print value + results = { + 0: "Accepted", + 1: "Runtime Error", + 2: "Time Limit Exceeded", + 3: "Memory Limit Exceeded", + 4: "Compile Error", + 5: "Format Error", + 6: "Wrong Answer", + 7: "System Error", + 8: "Waiting" + } + return results[value] + + +def translate_id(submission_item): + print submission_item + return submission_item["_id"] + +from django import template + +register = template.Library() +register.filter("translate_result", translate_result) +register.filter("translate_id", translate_id) \ No newline at end of file diff --git a/submission/views.py b/submission/views.py index 3d115a01..72a1f4a8 100644 --- a/submission/views.py +++ b/submission/views.py @@ -69,9 +69,9 @@ class SubmissionnAPIView(APIView): def problem_my_submissions_list_page(request, problem_id): collection = _create_mondodb_connection() submissions = collection.find({"problem_id": int(problem_id), "user_id": request.user.id}, - projection=["result", "accepted_answer_info", "create_time"], + projection=["result", "accepted_answer_info", "create_time", "language"], sort=[["create_time", -pymongo.ASCENDING]]) - return render(request, "oj/problem/my_solutions_list.html", {"submissions": submissions}) + return render(request, "oj/problem/my_submissions_list.html", {"submissions": submissions}) def my_submission(request, solution_id): diff --git a/template/oj/problem/my_solutions_list.html b/template/oj/problem/my_solutions_list.html deleted file mode 100644 index 613410ab..00000000 --- a/template/oj/problem/my_solutions_list.html +++ /dev/null @@ -1,53 +0,0 @@ -{% extends 'oj_base.html' %} - -{% block body %} - -
- -

Battle Over Cities - Hard Version

-

cpu: 1000ms 内存: 256M

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#提交时间结果运行时间运行内存语言
11Error Format333
2WrongWrong Answer@fat33
3LarryAccepted@twitter33
-
-{% endblock %} \ No newline at end of file diff --git a/template/oj/problem/my_submissions_list.html b/template/oj/problem/my_submissions_list.html new file mode 100644 index 00000000..cc9e1382 --- /dev/null +++ b/template/oj/problem/my_submissions_list.html @@ -0,0 +1,64 @@ +{% extends 'oj_base.html' %} + +{% block body %} + + {% load submission %} +
+ +

Battle Over Cities - Hard Version

+ +

cpu: 1000ms 内存: 256M

+ + + + + + + + + + + + {% for item in submissions %} + {% ifequal item.result 0 %} + + {% else %} + {% ifequal item.result 8 %} + + {% else %} + + {% endifequal %} + + {% endifequal %} + + + + + + + {% endfor %} + + +
#提交时间结果运行时间语言
{{ forloop.counter }}{{ item.create_time }}{{ item.result|translate_result }} + {% if item.accepted_answer_info.time %} + {{ item.accepted_answer_info.time }}ms + {% else %} + -- + {% endif %} + + {% ifequal item.language 1 %} + C + {% else %} + {% ifequal item.language 2 %} + C++ + {% else %} + Java + {% endifequal %} + {% endifequal %} +
+
+{% endblock %} \ No newline at end of file diff --git a/template/oj/problem/problem.html b/template/oj/problem/problem.html index bcb6160c..1764db22 100644 --- a/template/oj/problem/problem.html +++ b/template/oj/problem/problem.html @@ -67,10 +67,10 @@