Admin UI audit round 2: fix 28 display bugs across 23 files
All checks were successful
Build and Push Docker Image / build (push) Successful in 8m51s
All checks were successful
Build and Push Docker Image / build (push) Successful in 8m51s
HIGH fixes (broken features / wrong data): - H1: Fix roundAssignments → projectRoundStates in project router (7 occurrences) - H2: Fix deliberation results panel blank table (wrong field names) - H3: Fix deliberation participant names blank (wrong data path) - H4: Fix awards "Evaluated" stat duplicating "Eligible" count - H5: Fix cross-round comparison enabled at 1 round (backend requires 2) - H6: Fix setState during render anti-pattern (6 occurrences) - H7: Fix round detail jury member count always showing 0 - H8: Remove 4 invalid status values from observer dashboard filter - H9: Fix filtering progress bar always showing 100% MEDIUM fixes (misleading display): - M1: Filter special-award rounds from competition timeline - M2: Exclude special-award rounds from distinct project count - M3: Fix MENTORING pipeline node hardcoded "0 mentored" - M4: Fix DELIB_LOCKED badge using red for success state - M5: Add status label maps to deliberation session detail - M6: Humanize deliberation category + tie-break method displays - M8: Rename setStageId → setRoundId, "Select Stage" → "Select Round" - M9: Add missing INVITED/ACTIVE/SUSPENDED to members status labels - M10: Add ROUND_DRAFT/ACTIVE/CLOSED/ARCHIVED to StatusBadge - M11: Fix unsent messages showing "Scheduled" instead of "Draft" - M12: Rename misleading totalEvaluations → totalAssignments - M13: Rename "Stage" column to "Program" in projects page LOW fixes (cosmetic / edge-case): - L1: Use unfiltered rounds array for active round detection - L2: Use all rounds length for new round sort order - L3: Filter special-award rounds from header count - L4: Fix single-underscore replace in award status badges - L5: Fix score bucket boundary gaps (4.99 dropped between buckets) - L6: Title-case LIVE_FINAL pipeline metric status - L7: Fix roundType.replace only replacing first underscore - L8: Remove duplicate severity sort in smart-actions component Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -95,6 +95,7 @@ type RoundWithStats = {
|
||||
sortOrder: number
|
||||
windowOpenAt: string | null
|
||||
windowCloseAt: string | null
|
||||
specialAwardId: string | null
|
||||
juryGroup: { id: string; name: string } | null
|
||||
_count: { projectRoundStates: number; assignments: number }
|
||||
}
|
||||
@@ -193,7 +194,7 @@ export default function RoundsPage() {
|
||||
return
|
||||
}
|
||||
const slug = roundForm.name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '')
|
||||
const nextOrder = rounds.length
|
||||
const nextOrder = (compDetail?.rounds ?? []).length
|
||||
createRoundMutation.mutate({
|
||||
competitionId: comp.id,
|
||||
name: roundForm.name.trim(),
|
||||
@@ -286,7 +287,7 @@ export default function RoundsPage() {
|
||||
const totalProjects = (compDetail as any)?.distinctProjectCount ?? 0
|
||||
const allRounds = (compDetail?.rounds ?? []) as RoundWithStats[]
|
||||
const totalAssignments = allRounds.reduce((s, r) => s + r._count.assignments, 0)
|
||||
const activeRound = rounds.find((r) => r.status === 'ROUND_ACTIVE')
|
||||
const activeRound = allRounds.find((r) => r.status === 'ROUND_ACTIVE')
|
||||
|
||||
return (
|
||||
<TooltipProvider delayDuration={200}>
|
||||
@@ -327,7 +328,7 @@ export default function RoundsPage() {
|
||||
</Tooltip>
|
||||
</div>
|
||||
<div className="flex items-center gap-4 mt-1 text-sm text-muted-foreground">
|
||||
<span>{allRounds.length} rounds</span>
|
||||
<span>{allRounds.filter((r) => !r.specialAwardId).length} rounds</span>
|
||||
<span className="text-muted-foreground/30">|</span>
|
||||
<span>{totalProjects} projects</span>
|
||||
<span className="text-muted-foreground/30">|</span>
|
||||
|
||||
Reference in New Issue
Block a user