fix: count unique entities in column sums instead of QSO counts
Column sums now correctly count unique entities (e.g., unique DXCC countries per band) instead of counting individual entity entries or QSOs. This matches the award progress semantics. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -287,7 +287,7 @@
|
|||||||
applyFilter();
|
applyFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate column sums
|
// Calculate column sums - counts unique entities per column (not QSO counts)
|
||||||
$: columnSums = (() => {
|
$: columnSums = (() => {
|
||||||
const sums = new Map();
|
const sums = new Map();
|
||||||
const hasPoints = entities.length > 0 && entities[0].points !== undefined;
|
const hasPoints = entities.length > 0 && entities[0].points !== undefined;
|
||||||
@@ -321,25 +321,29 @@
|
|||||||
sums.set(key, sum);
|
sums.set(key, sum);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Count confirmed QSOs in this column
|
// Count unique entities in this column (not QSO counts)
|
||||||
if (isMixedMode) {
|
if (isMixedMode) {
|
||||||
const count = entities.filter(e => {
|
const matchedEntities = entities.filter(e => {
|
||||||
// For SAT column, check if entity has satellite QSOs
|
// For SAT column, check if entity has satellite QSOs
|
||||||
if (band === 'SAT') {
|
if (band === 'SAT') {
|
||||||
return e.qsos && e.qsos.some(qso => qso.satName) && e.confirmed;
|
return e.qsos && e.qsos.some(qso => qso.satName) && e.confirmed;
|
||||||
}
|
}
|
||||||
return e.band === band && 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 {
|
} else {
|
||||||
const count = entities.filter(e => {
|
const matchedEntities = entities.filter(e => {
|
||||||
// For SAT column, check if entity has satellite QSOs
|
// For SAT column, check if entity has satellite QSOs
|
||||||
if (band === 'SAT') {
|
if (band === 'SAT') {
|
||||||
return e.qsos && e.qsos.some(qso => qso.satName) && e.mode === mode && e.confirmed;
|
return e.qsos && e.qsos.some(qso => qso.satName) && e.mode === mode && e.confirmed;
|
||||||
}
|
}
|
||||||
return e.band === band && 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user