增加了题目列表页

This commit is contained in:
virusdefender
2015-08-14 16:38:31 +08:00
parent 489bbb841a
commit d031f14a68
4 changed files with 74 additions and 25 deletions

View File

@@ -7,6 +7,7 @@ import json
from django.shortcuts import render
from django.db.models import Q
from django.core.paginator import Paginator
from rest_framework.views import APIView
@@ -208,7 +209,8 @@ class TestCaseUploadAPIView(APIView):
file_info["test_cases"][str(i + 1)] = {"input_name": str(i + 1) + ".in",
"output_name": str(i + 1) + ".out",
"output_md5": md5.hexdigest(),
"output_size": os.path.getsize(test_case_dir + str(i + 1) + ".out")}
"output_size": os.path.getsize(
test_case_dir + str(i + 1) + ".out")}
# 写入配置文件
open(test_case_dir + "info", "w").write(json.dumps(file_info))
@@ -216,4 +218,28 @@ class TestCaseUploadAPIView(APIView):
"file_list": {"input": l[0::2],
"output": l[1::2]}})
else:
return error_response(u"测试用例压缩文件格式错误,请保证测试用例文件在根目录下直接压缩")
return error_response(u"测试用例压缩文件格式错误,请保证测试用例文件在根目录下直接压缩")
def problem_list_page(request, page=1):
problems = Problem.objects.all()
paginator = Paginator(problems, 20)
try:
current_page = paginator.page(int(page))
except Exception:
return error_response(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/problem/problem_list.html", {"problems": current_page, "page": int(page),
"previous_page": previous_page, "next_page": next_page})