Merge branch 'dev-sxw' into virusdefender-dev

* dev-sxw:
  实现了比赛提交列表里封榜的行为,封榜以后只显示缓存里的提交数据和封榜后自己的提交,封榜以后rank不再刷新(rank里还不会显示自己封榜以后的提交。。。这好像不对呀)
  增加比赛提交页面封榜行为
  修改函数名称
  为User   problems_status 添加默认值,并精简了相关代码

Conflicts:
	contest/views.py
This commit is contained in:
virusdefender
2015-09-17 10:12:43 +08:00
7 changed files with 40 additions and 20 deletions

View File

@@ -391,7 +391,7 @@ def _cmp(x, y):
return -1
def get_the_time_format(seconds):
def get_the_formatted_time(seconds):
if not seconds:
return ""
result = str(seconds % 60)
@@ -427,7 +427,7 @@ def contest_rank_page(request, contest_id):
"first_achieved": status.first_achieved,
"ac": status.ac,
"failed_number": status.total_submission_number,
"ac_time": get_the_time_format(status.ac_time)})
"ac_time": get_the_formatted_time(status.ac_time)})
if status.ac:
result[i]["problems"][-1]["failed_number"] -= 1
except ContestSubmission.DoesNotExist:
@@ -436,7 +436,8 @@ def contest_rank_page(request, contest_id):
user= User.objects.get(id=result[i]["user_id"])
result[i]["username"] = user.username
result[i]["real_name"] = user.real_name
result[i]["total_time"] = get_the_time_format(submissions.filter(ac=True).aggregate(total_time=Sum("total_time"))["total_time"])
result[i]["total_time"] = get_the_formatted_time(submissions.filter(ac=True).aggregate(total_time=Sum("total_time"))["total_time"])
result = sorted(result, cmp=_cmp, reverse=True)
r.set("contest_rank_" + contest_id, json.dumps(list(result)))
else: