diff --git a/src/frontend/src/routes/awards/[id]/+page.svelte b/src/frontend/src/routes/awards/[id]/+page.svelte index f3effe7..cd09ce5 100644 --- a/src/frontend/src/routes/awards/[id]/+page.svelte +++ b/src/frontend/src/routes/awards/[id]/+page.svelte @@ -287,7 +287,7 @@ applyFilter(); } - // Calculate column sums + // Calculate column sums - counts unique entities per column (not QSO counts) $: columnSums = (() => { const sums = new Map(); const hasPoints = entities.length > 0 && entities[0].points !== undefined; @@ -321,25 +321,29 @@ sums.set(key, sum); } } else { - // Count confirmed QSOs in this column + // Count unique entities in this column (not QSO counts) if (isMixedMode) { - const count = entities.filter(e => { + const matchedEntities = entities.filter(e => { // For SAT column, check if entity has satellite QSOs if (band === 'SAT') { return e.qsos && e.qsos.some(qso => qso.satName) && e.confirmed; } return e.band === band && e.confirmed; - }).length; - sums.set(key, count); + }); + // Count unique entity names + const uniqueEntities = new Set(matchedEntities.map(e => e.entityName || e.entity || 'Unknown')); + sums.set(key, uniqueEntities.size); } else { - const count = entities.filter(e => { + const matchedEntities = entities.filter(e => { // For SAT column, check if entity has satellite QSOs if (band === 'SAT') { return e.qsos && e.qsos.some(qso => qso.satName) && e.mode === mode && e.confirmed; } return e.band === band && e.mode === mode && e.confirmed; - }).length; - sums.set(key, count); + }); + // Count unique entity names + const uniqueEntities = new Set(matchedEntities.map(e => e.entityName || e.entity || 'Unknown')); + sums.set(key, uniqueEntities.size); } } });