style: ruff format 全仓库

行宽 180 下把历史遗留的折行表达式合并,无语义改动。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-05 04:45:26 -06:00
parent db104ac091
commit 3a9ab83ba5
56 changed files with 455 additions and 769 deletions

View File

@@ -24,9 +24,7 @@ class Command(BaseCommand):
fixed_count = 0
for progress in progresses:
problemset_problems = ProblemSetProblem.objects.filter(
problemset=progress.problemset
).select_related("problem")
problemset_problems = ProblemSetProblem.objects.filter(problemset=progress.problemset).select_related("problem")
updated = False
for psp in problemset_problems:
@@ -46,10 +44,7 @@ class Command(BaseCommand):
if not accepted:
continue
self.stdout.write(
f" 用户 {progress.user.username} | 题单「{progress.problemset.title}"
f" | 题目 {psp.problem._id} 已AC但进度未记录"
)
self.stdout.write(f" 用户 {progress.user.username} | 题单「{progress.problemset.title}」 | 题目 {psp.problem._id} 已AC但进度未记录")
if dry_run:
continue

View File

@@ -16,21 +16,19 @@ def sync_progress_on_problem_change(sender, instance, created, **kwargs):
try:
with transaction.atomic():
# 获取该题单的所有用户进度
progresses = ProblemSetProgress.objects.filter(
problemset=instance.problemset
)
progresses = ProblemSetProgress.objects.filter(problemset=instance.problemset)
# 批量更新所有用户的进度
for progress in progresses:
progress.update_progress()
# 重新计算该题单的所有徽章资格
badges = ProblemSetBadge.objects.filter(problemset=instance.problemset)
for badge in badges:
badge.recalculate_user_badges()
logger.info(f"已同步题单 {instance.problemset.id} 的所有用户进度和徽章资格")
except Exception as e:
logger.error(f"同步题单进度时出错: {e}")
@@ -42,27 +40,23 @@ def sync_progress_on_problem_delete(sender, instance, **kwargs):
with transaction.atomic():
# 清理该题目在题单中的所有提交记录
from .models import ProblemSetSubmission
ProblemSetSubmission.objects.filter(
problemset=instance.problemset,
problem=instance.problem
).delete()
ProblemSetSubmission.objects.filter(problemset=instance.problemset, problem=instance.problem).delete()
# 获取该题单的所有用户进度
progresses = ProblemSetProgress.objects.filter(
problemset=instance.problemset
)
progresses = ProblemSetProgress.objects.filter(problemset=instance.problemset)
# 批量更新所有用户的进度
for progress in progresses:
progress.update_progress()
# 重新计算该题单的所有徽章资格
badges = ProblemSetBadge.objects.filter(problemset=instance.problemset)
for badge in badges:
badge.recalculate_user_badges()
logger.info(f"已同步题单 {instance.problemset.id} 的所有用户进度和徽章资格(删除题目后)")
except Exception as e:
logger.error(f"同步题单进度时出错: {e}")
@@ -75,7 +69,7 @@ def sync_badges_on_badge_change(sender, instance, created, **kwargs):
# 重新计算该奖章的所有用户资格
instance.recalculate_user_badges()
logger.info(f"已重新计算题单 {instance.problemset.id} 的奖章 {instance.id} 的用户资格")
except Exception as e:
logger.error(f"重新计算奖章资格时出错: {e}")
@@ -88,6 +82,6 @@ def cleanup_badges_on_badge_delete(sender, instance, **kwargs):
# 删除该奖章的所有用户奖章记录
UserBadge.objects.filter(badge=instance).delete()
logger.info(f"已清理奖章 {instance.id} 的所有用户奖章记录")
except Exception as e:
logger.error(f"清理用户奖章记录时出错: {e}")

View File

@@ -76,8 +76,7 @@ class ProblemSetAPI(AsyncAPIView):
# 批量查询用户已获得的奖章ID这些题单相关的
user_earned_badge_ids = {
badge_id
async for badge_id in UserBadge.objects.filter(user=request.user, badge__problemset_id__in=problem_set_ids).values_list("badge_id", flat=True)
badge_id async for badge_id in UserBadge.objects.filter(user=request.user, badge__problemset_id__in=problem_set_ids).values_list("badge_id", flat=True)
}
# 预加载奖章信息在获取ID之后应用避免在获取ID时也预加载
@@ -97,12 +96,7 @@ class ProblemSetDetailAPI(AsyncAPIView):
async def get(self, request, problem_set_id):
"""获取题单详情"""
try:
problem_set = await (
ProblemSet.objects.select_related("created_by")
.filter(id=problem_set_id, visible=True)
.exclude(status=ProblemSetStatus.DRAFT)
.aget()
)
problem_set = await ProblemSet.objects.select_related("created_by").filter(id=problem_set_id, visible=True).exclude(status=ProblemSetStatus.DRAFT).aget()
except ProblemSet.DoesNotExist:
return self.error("题单不存在")