修改用户题目 ac 状态的存储方式

This commit is contained in:
virusdefender 2015-09-24 15:28:55 +08:00
parent 7eea999277
commit 44d094f19c
3 changed files with 6 additions and 17 deletions

View File

@ -334,18 +334,6 @@ def contest_problems_list_page(request, contest_id):
"""
contest = Contest.objects.get(id=contest_id)
contest_problems = ContestProblem.objects.filter(contest=contest).order_by("sort_index")
submissions = ContestSubmission.objects.filter(user=request.user, contest=contest)
state = {}
for item in submissions:
state[item.problem_id] = item.ac
for item in contest_problems:
if item.id in state:
if state[item.id]:
item.state = 1
else:
item.state = 2
else:
item.state = 0
return render(request, "oj/contest/contest_problems_list.html", {"contest_problems": contest_problems,
"contest": {"id": contest_id}})

View File

@ -82,5 +82,10 @@ class MessageQueue(object):
contest_problem.total_accepted_number += 1
contest_problem.save()
problems_status = user.problems_status
problems_status["contest_problems"][str(contest_problem.id)] = 1
user.problems_status = problems_status
user.save()
logger.debug("Start message queue")
MessageQueue().listen_task()

View File

@ -305,15 +305,11 @@ def problem_list_page(request, page=1):
except Exception:
pass
if request.user.is_authenticated():
problems_status = json.loads(request.user.problems_status)
else:
problems_status = {}
# 右侧标签列表 按照关联的题目的数量排序 排除题目数量为0的
tags = ProblemTag.objects.annotate(problem_number=Count("problem")).filter(problem_number__gt=0).order_by("-problem_number")
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,"problems_status": problems_status,
"keyword": keyword, "tag": tag_text,
"tags": tags, "difficulty_order": difficulty_order})