update
This commit is contained in:
@@ -168,6 +168,18 @@ class ProblemSetProgress(models.Model):
|
||||
)
|
||||
self.total_problems_count = problemset_problems.count()
|
||||
|
||||
# 获取当前题单中所有题目的ID集合
|
||||
current_problem_ids = {str(psp.problem.id) for psp in problemset_problems}
|
||||
|
||||
# 清理已删除题目的进度记录
|
||||
progress_detail_to_remove = []
|
||||
for problem_id in self.progress_detail.keys():
|
||||
if problem_id not in current_problem_ids:
|
||||
progress_detail_to_remove.append(problem_id)
|
||||
|
||||
for problem_id in progress_detail_to_remove:
|
||||
del self.progress_detail[problem_id]
|
||||
|
||||
# 计算已完成题目数
|
||||
completed_count = 0
|
||||
total_score = 0
|
||||
@@ -177,7 +189,8 @@ class ProblemSetProgress(models.Model):
|
||||
if problem_id in self.progress_detail:
|
||||
problem_progress = self.progress_detail[problem_id]
|
||||
completed_count += 1
|
||||
total_score += problem_progress.get("score", 0)
|
||||
total_score += psp.score
|
||||
problem_progress["score"] = psp.score
|
||||
|
||||
self.completed_problems_count = completed_count
|
||||
self.total_score = total_score
|
||||
|
||||
Reference in New Issue
Block a user