feat: group satellite QSOs under SAT column in award detail
Satellite QSOs are now grouped under a "SAT" column instead of their frequency band. The backend now includes satName in QSO data, and the frontend detects satellite QSOs and groups them appropriately. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -239,6 +239,7 @@ async function calculateDOKAwardProgress(userId, award, options = {}) {
|
|||||||
qsoDate: qso.qsoDate,
|
qsoDate: qso.qsoDate,
|
||||||
timeOn: qso.timeOn,
|
timeOn: qso.timeOn,
|
||||||
band: qso.band,
|
band: qso.band,
|
||||||
|
satName: qso.satName,
|
||||||
confirmed: true,
|
confirmed: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -368,6 +369,7 @@ async function calculatePointsAwardProgress(userId, award, options = {}) {
|
|||||||
qsoDate: qso.qsoDate,
|
qsoDate: qso.qsoDate,
|
||||||
timeOn: qso.timeOn,
|
timeOn: qso.timeOn,
|
||||||
band: qso.band,
|
band: qso.band,
|
||||||
|
satName: qso.satName,
|
||||||
confirmed: true,
|
confirmed: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -412,6 +414,7 @@ async function calculatePointsAwardProgress(userId, award, options = {}) {
|
|||||||
qsoDate: qso.qsoDate,
|
qsoDate: qso.qsoDate,
|
||||||
timeOn: qso.timeOn,
|
timeOn: qso.timeOn,
|
||||||
band: qso.band,
|
band: qso.band,
|
||||||
|
satName: qso.satName,
|
||||||
confirmed: true,
|
confirmed: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -450,6 +453,7 @@ async function calculatePointsAwardProgress(userId, award, options = {}) {
|
|||||||
qsoDate: qso.qsoDate,
|
qsoDate: qso.qsoDate,
|
||||||
timeOn: qso.timeOn,
|
timeOn: qso.timeOn,
|
||||||
band: qso.band,
|
band: qso.band,
|
||||||
|
satName: qso.satName,
|
||||||
confirmed: true,
|
confirmed: true,
|
||||||
}],
|
}],
|
||||||
});
|
});
|
||||||
@@ -759,6 +763,7 @@ export async function getAwardEntityBreakdown(userId, awardId) {
|
|||||||
qsoDate: qso.qsoDate,
|
qsoDate: qso.qsoDate,
|
||||||
timeOn: qso.timeOn,
|
timeOn: qso.timeOn,
|
||||||
band: qso.band,
|
band: qso.band,
|
||||||
|
satName: qso.satName,
|
||||||
confirmed: true,
|
confirmed: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,9 @@
|
|||||||
|
|
||||||
const entityData = entityMap.get(entityName);
|
const entityData = entityMap.get(entityName);
|
||||||
|
|
||||||
const band = entity.band || 'Unknown';
|
// Check if this is a satellite QSO - use "SAT" instead of band
|
||||||
|
const isSatellite = entity.qsos && entity.qsos.some(qso => qso.satName);
|
||||||
|
const band = isSatellite ? 'SAT' : (entity.band || 'Unknown');
|
||||||
|
|
||||||
if (isMixedMode) {
|
if (isMixedMode) {
|
||||||
// Mixed Mode: aggregate by band only, collect all QSOs across modes
|
// Mixed Mode: aggregate by band only, collect all QSOs across modes
|
||||||
@@ -209,7 +211,9 @@
|
|||||||
|
|
||||||
const entityData = entityMap.get(entityName);
|
const entityData = entityMap.get(entityName);
|
||||||
|
|
||||||
const band = entity.band || 'Unknown';
|
// Check if this is a satellite QSO - use "SAT" instead of band
|
||||||
|
const isSatellite = entity.qsos && entity.qsos.some(qso => qso.satName);
|
||||||
|
const band = isSatellite ? 'SAT' : (entity.band || 'Unknown');
|
||||||
|
|
||||||
if (isMixedMode) {
|
if (isMixedMode) {
|
||||||
// Mixed Mode: aggregate by band only
|
// Mixed Mode: aggregate by band only
|
||||||
|
|||||||
Reference in New Issue
Block a user