From 03ef1e49f3faafbf6706caaec18b0f5d36821883 Mon Sep 17 00:00:00 2001 From: "sxw@401" Date: Wed, 16 Sep 2015 11:30:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E6=AF=94=E8=B5=9B?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=88=97=E8=A1=A8=E9=87=8C=E5=B0=81=E6=A6=9C?= =?UTF-8?q?=E7=9A=84=E8=A1=8C=E4=B8=BA=EF=BC=8C=E5=B0=81=E6=A6=9C=E4=BB=A5?= =?UTF-8?q?=E5=90=8E=E5=8F=AA=E6=98=BE=E7=A4=BA=E7=BC=93=E5=AD=98=E9=87=8C?= =?UTF-8?q?=E7=9A=84=E6=8F=90=E4=BA=A4=E6=95=B0=E6=8D=AE=E5=92=8C=E5=B0=81?= =?UTF-8?q?=E6=A6=9C=E5=90=8E=E8=87=AA=E5=B7=B1=E7=9A=84=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=8C=E5=B0=81=E6=A6=9C=E4=BB=A5=E5=90=8Erank=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E5=88=B7=E6=96=B0=EF=BC=88rank=E9=87=8C=E8=BF=98?= =?UTF-8?q?=E4=B8=8D=E4=BC=9A=E6=98=BE=E7=A4=BA=E8=87=AA=E5=B7=B1=E5=B0=81?= =?UTF-8?q?=E6=A6=9C=E4=BB=A5=E5=90=8E=E7=9A=84=E6=8F=90=E4=BA=A4=E3=80=82?= =?UTF-8?q?=E3=80=82=E3=80=82=E8=BF=99=E5=A5=BD=E5=83=8F=E4=B8=8D=E5=AF=B9?= =?UTF-8?q?=E5=91=80=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contest_submission/views.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/contest_submission/views.py b/contest_submission/views.py index 40b3c20..aaa6c6e 100644 --- a/contest_submission/views.py +++ b/contest_submission/views.py @@ -1,9 +1,11 @@ # coding=utf-8 import json +from datetime import datetime import redis +import pytz from django.shortcuts import render from django.core.paginator import Paginator - +from django.utils import timezone from rest_framework.views import APIView from judge.judger_controller.tasks import judge @@ -21,7 +23,6 @@ from submission.models import Submission from .serializers import CreateContestSubmissionSerializer from submission.serializers import SubmissionSerializer from oj.settings import REDIS_CACHE -import redis class ContestSubmissionAPIView(APIView): @@ -77,6 +78,20 @@ def contest_problem_my_submissions_list_page(request, contest_id, contest_proble {"submissions": submissions, "problem": contest_problem}) +def get_formatted_datetime(date_time): + date_time = timezone.localtime(date_time) + result = str(date_time.minute) + if date_time.minute < 10: + result = "0" + result + result = str(date_time.hour) + ":" + result + if date_time.hour < 10: + result = "0" + result + result = str(date_time.day) + u"日 " + result + result = str(date_time.month) + u"月" + result + result = str(date_time.year) + u"年" + result + return result + + @login_required def contest_problem_submissions_list_page(request, contest_id, page=1): """ @@ -93,18 +108,26 @@ def contest_problem_submissions_list_page(request, contest_id, page=1): submissions = Submission.objects.filter(contest_id=contest_id). \ values("id", "contest_id", "problem_id", "result", "create_time", "accepted_answer_time", "language", "user_id").order_by("-create_time") + # 把datetime类型转换为string + for submission in submissions: + submission["create_time"] = get_formatted_datetime(submission["create_time"]) r.set("contest_submissions_" + contest_id, json.dumps(list(submissions))) else: # 已封榜 submissions = r.get("contest_submissions_" + contest_id) if submissions: submissions = json.loads(submissions) + time = datetime.strptime(submissions[0]["create_time"].encode("utf8"), + '%Y\xe5\xb9\xb4%m\xe6\x9c\x88%d\xe6\x97\xa5 %H:%M') + time = time.replace(tzinfo=pytz.timezone('Asia/Shanghai')) else: submissions = [] + time = contest.start_time # 除了缓存里的还要加上封榜以后自己的提交 - submissions += Submission.objects.filter(contest_id=contest_id, user_id=request.user, cerate_time__gte=time). \ + self_submissions = Submission.objects.filter(contest_id=int(contest_id), user_id=request.user.id, create_time__gte=time). \ values("id", "contest_id", "problem_id", "result", "create_time", "accepted_answer_time", "language", "user_id").order_by("-create_time") + submissions = list(self_submissions) + submissions language = request.GET.get("language", None) filter = None