From 7f437132d0e0c0b5c33d9b3d61b0cd64cc23d53b Mon Sep 17 00:00:00 2001 From: edripper Date: Thu, 30 Jul 2026 17:14:14 +0000 Subject: [PATCH] fix: include rejected and returned counts in review leaderboard total was already COUNT(*) over all project_reviews statuses, but the leaderboard only broke it into approved/changes_needed/banned, so rejected and returned (overturned first-pass) rows were silently folded into total without a visible column. --- backend/src/admin/admin.service.ts | 4 ++++ frontend/src/routes/admin/+page.svelte | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/backend/src/admin/admin.service.ts b/backend/src/admin/admin.service.ts index c9deba1..e899f37 100644 --- a/backend/src/admin/admin.service.ts +++ b/backend/src/admin/admin.service.ts @@ -1347,6 +1347,8 @@ export class AdminService implements OnApplicationBootstrap { .addSelect("COUNT(*) FILTER (WHERE r.status = 'approved')::int", 'approved') .addSelect("COUNT(*) FILTER (WHERE r.status = 'changes_needed')::int", 'changesNeeded') .addSelect("COUNT(*) FILTER (WHERE r.status = 'ban')::int", 'banned') + .addSelect("COUNT(*) FILTER (WHERE r.status = 'rejected')::int", 'rejected') + .addSelect("COUNT(*) FILTER (WHERE r.status = 'returned')::int", 'returned') .groupBy('r.reviewer_id') .addGroupBy('u.name') .addGroupBy('u.slack_id') @@ -1368,6 +1370,8 @@ export class AdminService implements OnApplicationBootstrap { approved, changesNeeded: Number(r.changesNeeded), banned: Number(r.banned), + rejected: Number(r.rejected), + returned: Number(r.returned), approvalPercent: total > 0 ? Math.round((approved / total) * 100) : 0, }; }); diff --git a/frontend/src/routes/admin/+page.svelte b/frontend/src/routes/admin/+page.svelte index 939ae5a..136e103 100644 --- a/frontend/src/routes/admin/+page.svelte +++ b/frontend/src/routes/admin/+page.svelte @@ -1529,6 +1529,8 @@ approved: number; changesNeeded: number; banned: number; + rejected: number; + returned: number; approvalPercent: number; } let leaderboardRows: LeaderboardRow[] = $state([]); @@ -3620,6 +3622,8 @@ Approved Changes Needed Banned + Rejected + Returned Approval % @@ -3631,6 +3635,8 @@ {row.approved} {row.changesNeeded} {row.banned} + {row.rejected} + {row.returned} {row.approvalPercent}% {/each}