score
All checks were successful
Deploy to Server / deploy (push) Successful in 17s

This commit is contained in:
jeremygan2021
2026-03-20 15:51:59 +08:00
parent 8bc06b0423
commit 0274e59fd9
2 changed files with 23 additions and 6 deletions

View File

@@ -432,6 +432,9 @@ def project_detail_api(request, project_id):
if ai_count > 0:
ai_score_avg = round(ai_total / ai_count, 2)
# 判断是否为选手查看自己的项目
is_own_project = role == 'contestant' and project.contestant.user == user
data = {
'id': project.id,
'title': project.title,
@@ -443,19 +446,20 @@ def project_detail_api(request, project_id):
'ai_result': ai_data,
'audio_url': audio_url,
'can_grade': role == 'judge' or (role == 'contestant' and project.contestant.user != user),
# 评分细项(仅评委和嘉宾可见)
'is_own_project': is_own_project,
# 评分细项(评委、嘉宾可见,选手查看自己的项目时也可见)
'score_details': {
'judge_score': judge_score_avg,
'peer_score': peer_score_avg,
'ai_score': ai_score_avg,
'final_score': final_score
} if role in ['judge', 'guest'] else None,
# 评分公式信息
} if role in ['judge', 'guest'] or is_own_project else None,
# 评分公式信息(评委、嘉宾可见,选手查看自己的项目时也可见)
'formula_info': {
'name': project.competition.active_formula.name if project.competition.active_formula else None,
'formula': project.competition.active_formula.formula if project.competition.active_formula else None,
'preview': project.competition.active_formula.get_formula_preview() if project.competition.active_formula else None
} if project.competition.score_calculation_type == 'formula' else None
} if project.competition.score_calculation_type == 'formula' and (role in ['judge', 'guest'] or is_own_project) else None
}
# Specifically for guest: can_grade is False