From 75eb1192fb9f42b13461eea1bdf91b4658610f1d Mon Sep 17 00:00:00 2001 From: esp Date: Thu, 20 Aug 2015 21:23:53 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=90=8E=E7=AB=AF-=E5=89=8D=E5=8F=B0]?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86submissions=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E6=98=BE=E7=A4=BA(=E5=8F=AA=E6=98=BE=E7=A4=BA=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E7=94=A8=E6=88=B7=E7=9A=84=E6=8F=90=E4=BA=A4),?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E5=B7=B2=E6=9C=89=E7=9A=84view=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=8D=95=E4=B8=AAsubmission=E7=9A=84=E6=98=BE?= =?UTF-8?q?=E7=A4=BA.=E6=98=BE=E7=A4=BA=E7=95=8C=E9=9D=A2=E4=B8=8E?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=88=86=E9=A1=B5=E6=98=BE=E7=A4=BA=E7=BB=9F?= =?UTF-8?q?=E4=B8=80.=E9=97=AE=E9=A2=98=E6=98=AFid=E7=9A=84=E6=98=BE?= =?UTF-8?q?=E7=A4=BA.url:http://127.0.0.1:8000/my=5Fsubmissions/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oj/urls.py | 2 + submission/views.py | 32 +++++++++- .../oj/submission/my_submissions_list.html | 60 +++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 template/oj/submission/my_submissions_list.html diff --git a/oj/urls.py b/oj/urls.py index ba7c9977..f5b94e58 100644 --- a/oj/urls.py +++ b/oj/urls.py @@ -59,5 +59,7 @@ urlpatterns = [ name="join_group_request_admin_api"), url(r'^api/submission/$', SubmissionAPIView.as_view(), name="submission_api"), url(r'^api/admin/submission/$', SubmissionAdminAPIView.as_view(), name="submission_admin_api_view"), + url(r'^my_submissions/$', "submission.views.my_submission_list_page", name="my_submission_list_page"), + url(r'^my_submissions/(?P\d+)/$', "submission.views.my_submission_list_page", name="my_submission_list_page"), ] diff --git a/submission/views.py b/submission/views.py index 10c77867..a3319849 100644 --- a/submission/views.py +++ b/submission/views.py @@ -13,6 +13,7 @@ from problem.models import Problem from utils.shortcuts import serializer_invalid_response, error_response, success_response, error_page, paginate from .models import Submission from .serializers import CreateSubmissionSerializer, SubmissionSerializer +from django.core.paginator import Paginator class SubmissionAPIView(APIView): @@ -101,4 +102,33 @@ class SubmissionAdminAPIView(APIView): if not problem_id: return error_response(u"参数错误") submissions = Submission.objects.filter(problem_id=problem_id).order_by("-create_time") - return paginate(request, submissions, SubmissionSerializer) \ No newline at end of file + return paginate(request, submissions, SubmissionSerializer) + +@login_required +def my_submission_list_page(request, page = 1): + try: + submissions = Submission.objects.filter(user_id=request.user.id) + except Submission.DoesNotExist: + return error_page(request, u"你还没有提交过任何问题") + paginator = Paginator(submissions, 20) + try: + current_page = paginator.page(int(page)) + except Exception: + return error_page(request, u"不存在的页码") + previous_page = next_page = None + try: + previous_page = current_page.previous_page_number() + except Exception: + pass + + try: + next_page = current_page.next_page_number() + except Exception: + pass + + return render(request, "oj/submission/my_submissions_list.html", + {"submissions": current_page, "page": int(page), + "previous_page": previous_page, "next_page": next_page}) + + + return render(request, "oj/submission/my_submissions_list.html", {"submissions": submission}) diff --git a/template/oj/submission/my_submissions_list.html b/template/oj/submission/my_submissions_list.html new file mode 100644 index 00000000..b381f5c9 --- /dev/null +++ b/template/oj/submission/my_submissions_list.html @@ -0,0 +1,60 @@ +{% extends 'oj_base.html' %} + +{% block body %} + + {% load submission %} +
+ + + + + + + + + + + + + + {% for item in submissions %} + + + + + + + + {% endfor %} + + +
#提交时间结果运行时间语言
{{ item.id }}{{ item.create_time }}{{ item.result|translate_result }} + {% if item.accepted_answer_time %} + {{ item.accepted_answer_time }}ms + {% else %} + -- + {% endif %} + + {{ item.language|translate_language }} +
+ +
+{% endblock %}