Skip to content

Commit 04f57ab

Browse files
committed
fix: rubricas
1 parent 66291cd commit 04f57ab

1 file changed

Lines changed: 13 additions & 12 deletions

File tree

  • app/[locale]/dashboard/participante/proyecto

app/[locale]/dashboard/participante/proyecto/page.tsx

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,9 @@ export default function ParticipanteProyectoPage() {
395395
)
396396
}
397397

398+
const activeReviewerRole = project?.isFinalist ? "judge" : "admin"
399+
const phaseReviews = reviews.filter((r) => r.reviewerRole === activeReviewerRole && !r.disqualified)
400+
398401
return (
399402
<ProtectedRoute allowedRoles={["participant"]}>
400403
<DashboardLayout title={t.dashboard.sidebar.myProject}>
@@ -425,13 +428,10 @@ export default function ParticipanteProyectoPage() {
425428
)}
426429
</div>
427430

428-
{showScoresToTeams && reviews.length > 0 && (
431+
{showScoresToTeams && phaseReviews.length > 0 && (
429432
<div className="space-y-6">
430433
{scoringCriteria.length > 0 && (() => {
431-
const relevantPhaseReviews = reviews.filter(r =>
432-
(project?.isFinalist ? r.reviewerRole === "judge" : r.reviewerRole === "admin") && !r.disqualified
433-
)
434-
if (relevantPhaseReviews.length === 0) return null
434+
if (phaseReviews.length === 0) return null
435435

436436
return (
437437
<GlassCard className="border-brand-yellow/20 bg-brand-yellow/5">
@@ -443,13 +443,15 @@ export default function ParticipanteProyectoPage() {
443443
</div>
444444

445445
<div className="grid grid-cols-1 gap-2">
446-
{scoringCriteria.map((c) => {
447-
const avgRaw = relevantPhaseReviews.reduce((sum, r) => sum + (r.rawScores?.[c.id] || 0), 0) / relevantPhaseReviews.length
446+
{scoringCriteria.filter(c => (c.targetRole || "judge") === (project?.isFinalist ? "judge" : "admin")).map((c) => {
447+
const avgRaw = phaseReviews.reduce((sum, r) => sum + (r.rawScores?.[c.id] || 0), 0) / phaseReviews.length
448+
const rubricWeight = Number(c.weight) > 0 ? Number(c.weight) : 1
449+
const weightedScore = (avgRaw / 10) * rubricWeight
448450
return (
449451
<div key={c.id} className="flex flex-col gap-1 bg-black/20 p-3 rounded border border-white/5">
450452
<div className="flex justify-between items-center">
451453
<span className="text-xs font-bold text-brand-cyan">{c.name}</span>
452-
<span className="text-sm font-bold text-brand-yellow">{Math.round(avgRaw * 10) / 10} / 10</span>
454+
<span className="text-sm font-bold text-brand-yellow">{Math.round(weightedScore * 10) / 10} / {rubricWeight}</span>
453455
</div>
454456
<div className="w-full h-1 bg-white/5 rounded-full mt-1 overflow-hidden">
455457
<div
@@ -464,10 +466,10 @@ export default function ParticipanteProyectoPage() {
464466
<div className="mt-4 pt-4 border-t border-brand-yellow/20 flex justify-between items-center">
465467
<div className="flex flex-col">
466468
<span className="text-xs font-pixel text-brand-yellow uppercase">{locale === "es" ? "Puntaje Final" : "Final Score"}</span>
467-
<span className="text-xs text-brand-cyan/40">Calculated from {relevantPhaseReviews.length} reviews</span>
469+
<span className="text-xs text-brand-cyan/40">Calculated from {phaseReviews.length} reviews</span>
468470
</div>
469471
<div className="text-3xl font-bold text-brand-yellow font-pixel">
470-
{Math.round(relevantPhaseReviews.reduce((sum, r) => sum + (r.totalScore || 0), 0) / relevantPhaseReviews.length)}
472+
{Math.round(phaseReviews.reduce((sum, r) => sum + (r.totalScore || 0), 0) / phaseReviews.length)}
471473
</div>
472474
</div>
473475
</div>
@@ -477,8 +479,7 @@ export default function ParticipanteProyectoPage() {
477479
})()}
478480

479481
{(() => {
480-
const phaseComments = reviews
481-
.filter(r => (project?.isFinalist ? r.reviewerRole === "judge" : r.reviewerRole === "admin"))
482+
const phaseComments = phaseReviews
482483
.map(r => r.comment)
483484
.filter(c => c && c.trim())
484485
if (phaseComments.length === 0) return null

0 commit comments

Comments
 (0)