修改 js 的命名风格

This commit is contained in:
virusdefender
2015-08-15 13:54:30 +08:00
parent d031f14a68
commit 025335b40a
50 changed files with 1403 additions and 896 deletions

View File

@@ -60,6 +60,7 @@ class ProblemAdminAPIView(APIView):
serializer = CreateProblemSerializer(data=request.data)
if serializer.is_valid():
data = serializer.data
print data
problem = Problem.objects.create(title=data["title"],
description=data["description"],
input_description=data["input_description"],
@@ -114,20 +115,30 @@ class ProblemAdminAPIView(APIView):
# 删除原有的标签的对应关系
problem.tags.remove(*problem.tags.all())
# 重新添加所有的标签
problem.tags.add(*ProblemTag.objects.filter(id__in=data["tags"]))
for tag in data["tags"]:
try:
tag = ProblemTag.objects.get(name=tag)
except ProblemTag.DoesNotExist:
tag = ProblemTag.objects.create(name=tag)
problem.tags.add(tag)
problem.save()
return success_response(ProblemSerializer(problem).data)
else:
return serializer_invalid_response(serializer)
class ProblemAPIView(APIView):
def get(self, request):
"""
题目分页json api接口
---
response_serializer: ProblemSerializer
"""
problem_id = request.GET.get("problem_id", None)
if problem_id:
try:
problem = Problem.objects.get(id=problem_id)
return success_response(ProblemSerializer(problem).data)
except Problem.DoesNotExist:
return error_response(u"题目不存在")
problem = Problem.objects.all().order_by("-last_update_time")
visible = request.GET.get("visible", None)
if visible:
@@ -209,8 +220,7 @@ 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))
@@ -222,12 +232,28 @@ class TestCaseUploadAPIView(APIView):
def problem_list_page(request, page=1):
# 正常情况
problems = Problem.objects.all()
# 搜索的情况
keyword = request.GET.get("keyword", None)
if keyword:
problems = problems.filter(title__contains=keyword)
# 按照标签筛选
tag_text = request.GET.get("tag", None)
if tag_text:
try:
tag = ProblemTag.objects.get(name=tag_text)
except ProblemTag.DoesNotExist:
return error_page(request, u"标签不存在")
problems = tag.problem_set.all()
paginator = Paginator(problems, 20)
try:
current_page = paginator.page(int(page))
except Exception:
return error_response(u"不存在的页码")
return error_page(request, u"不存在的页码")
previous_page = next_page = None
@@ -241,5 +267,7 @@ def problem_list_page(request, page=1):
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})
return render(request, "oj/problem/problem_list.html",
{"problems": current_page, "page": int(page),
"previous_page": previous_page, "next_page": next_page,
"keyword": keyword, "tag": tag_text})