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

This commit is contained in:
jeremygan2021
2026-03-20 15:34:09 +08:00
parent 98baa92e98
commit 8bc06b0423
3 changed files with 28 additions and 1 deletions

View File

@@ -449,7 +449,13 @@ def project_detail_api(request, project_id):
'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'] 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
}
# Specifically for guest: can_grade is False

View File

@@ -391,6 +391,7 @@ class ScoreFormula(models.Model):
dimension_map = {f'd["{d.name}"]': f'[{d.name}]' for d in self.competition.score_dimensions.all()}
dimension_map.update({f"d['{d.name}']": f'[{d.name}]' for d in self.competition.score_dimensions.all()})
dimension_map.update({f'dimension_{d.id}': f'[{d.name}]' for d in self.competition.score_dimensions.all()})
result = self.formula
for old, new in dimension_map.items():

View File

@@ -183,6 +183,16 @@
<span id="finalScoreValue" class="text-2xl font-bold text-yellow-600">--</span>
</div>
</div>
<!-- 评分公式信息 -->
<div id="formulaInfoSection" class="mt-4 p-4 bg-gradient-to-r from-indigo-50 to-purple-50 rounded-lg border border-indigo-200">
<div class="flex items-center mb-2">
<i class="fas fa-calculator text-indigo-500 mr-2"></i>
<span class="text-sm font-bold text-indigo-700">评分算法</span>
</div>
<div id="formulaName" class="text-sm font-semibold text-gray-800 mb-1">--</div>
<div id="formulaPreview" class="text-xs text-gray-600 bg-white p-2 rounded border border-indigo-100 font-mono break-all">--</div>
</div>
</div>
</div>
@@ -644,6 +654,16 @@ async function viewProject(id) {
document.getElementById('peerScoreValue').innerText = data.score_details.peer_score !== null ? data.score_details.peer_score : '--';
document.getElementById('aiScoreValue').innerText = data.score_details.ai_score !== null ? data.score_details.ai_score : '--';
document.getElementById('finalScoreValue').innerText = data.score_details.final_score !== null ? data.score_details.final_score : '--';
// 渲染评分公式信息
const formulaInfoSection = document.getElementById('formulaInfoSection');
if (data.formula_info && data.formula_info.name) {
formulaInfoSection.style.display = 'block';
document.getElementById('formulaName').innerText = data.formula_info.name;
document.getElementById('formulaPreview').innerText = data.formula_info.preview || data.formula_info.formula || '--';
} else {
formulaInfoSection.style.display = 'none';
}
} else {
scoreDetailsSection.style.display = 'none';
}