docs: document mode groups feature in CLAUDE.md and README.md
Add documentation for the new configurable mode groups feature: - CLAUDE.md: Add modeGroups to Award Rule Options section - CLAUDE.md: Update Award Detail View section with mode group info - CLAUDE.md: Add to Recent Development Work (January 2026) - README.md: Add GET /api/awards/:awardId endpoint - README.md: Add new Mode Groups section in Features in Detail Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
33
CLAUDE.md
33
CLAUDE.md
@@ -362,6 +362,23 @@ To add a new award:
|
||||
- If `true`, only QSOs with `satName` field set are counted
|
||||
- Used for DXCC SAT award
|
||||
|
||||
**modeGroups**: Define mode groups for filtering in award detail view
|
||||
```json
|
||||
{
|
||||
"modeGroups": {
|
||||
"Digi-Modes": ["FT8", "FT4", "MFSK", "PSK31", "RTTY", "JT65", "JT9"],
|
||||
"Classic Digi-Modes": ["PSK31", "RTTY", "JT65", "JT9"],
|
||||
"Mixed-Mode w/o WSJT-Modes": ["PSK31", "RTTY", "AM", "SSB", "FM", "CW"],
|
||||
"Phone-Modes": ["AM", "SSB", "FM"]
|
||||
}
|
||||
}
|
||||
```
|
||||
- Optional field at award definition level (not in `rules`)
|
||||
- Key is the display name shown in the mode filter dropdown
|
||||
- Value is an array of mode strings to include in the group
|
||||
- Used to create convenient mode filters that combine multiple modes
|
||||
- Awards without `modeGroups` work as before (backward compatible)
|
||||
|
||||
**filters**: Additional filtering options
|
||||
- `eq`: equals
|
||||
- `ne`: not equals
|
||||
@@ -443,7 +460,10 @@ The QSO page (`src/frontend/src/routes/qsos/+page.svelte`) includes advanced fil
|
||||
|
||||
**Key Features**:
|
||||
- **Summary Cards**: Show total, confirmed, worked, needed counts for unique entities
|
||||
- **Mode Filter**: Filter by specific mode or view "Mixed Mode" (aggregates all modes by band)
|
||||
- **Mode Filter**: Filter by specific mode, mode group, or view "Mixed Mode" (aggregates all modes by band)
|
||||
- Awards can define `modeGroups` to create convenient multi-mode filters
|
||||
- Example groups: "Digi-Modes", "Classic Digi-Modes", "Phone-Modes", "Mixed-Mode w/o WSJT-Modes"
|
||||
- Visual separator (`─────`) appears between mode groups and individual modes
|
||||
- **Table Columns**: Show bands (or band/mode combinations) as columns
|
||||
- **QSO Counts**: Each cell shows count of confirmed QSOs for that (entity, band, mode) slot
|
||||
- **Drill-Down**: Click a count to open modal showing all QSOs for that slot
|
||||
@@ -456,6 +476,8 @@ The QSO page (`src/frontend/src/routes/qsos/+page.svelte`) includes advanced fil
|
||||
**Column Sums**: Show unique entity count per column (not QSO counts)
|
||||
|
||||
**Backend Changes** (`src/backend/services/awards.service.js`):
|
||||
- `getAllAwards()`: Returns award definitions including `modeGroups`
|
||||
- `getAwardById(awardId)`: Returns single award definition with `modeGroups`
|
||||
- `calculateDOKAwardProgress()`: Groups by (DOK, band, mode) slots, collects QSOs in `qsos` array
|
||||
- `calculatePointsAwardProgress()`: Handles all count modes with `qsos` array
|
||||
- `getAwardEntityBreakdown()`: Groups by (entity, band, mode) slots
|
||||
@@ -511,6 +533,10 @@ const params = new URLSearchParams({
|
||||
- DXCC restricted to HF bands (160m-10m) only
|
||||
- Added DXCC SAT award for satellite-only QSOs
|
||||
- Removed redundant award variants (DXCC CW, DLD variants)
|
||||
- Added `modeGroups` for configurable multi-mode filters in award detail view
|
||||
- Per-award configuration of mode groups (Digi-Modes, Phone-Modes, etc.)
|
||||
- Visual separator in mode filter dropdown between groups and individual modes
|
||||
- DXCC and DLD awards include: Digi-Modes, Classic Digi-Modes, Mixed-Mode w/o WSJT-Modes, Phone-Modes
|
||||
|
||||
**Award Detail View Improvements**:
|
||||
- Summary shows unique entity progress instead of QSO counts
|
||||
@@ -518,6 +544,11 @@ const params = new URLSearchParams({
|
||||
- Satellite QSOs grouped under "SAT" column
|
||||
- Bands sorted by wavelength instead of alphabetically
|
||||
- Mode removed from table headers (visible in filter dropdown)
|
||||
- Mode groups allow filtering multiple modes together (e.g., all digital modes)
|
||||
|
||||
**Backend API Additions**:
|
||||
- Added `GET /api/awards/:awardId` endpoint for fetching single award definition
|
||||
- `getAllAwards()` now includes `modeGroups` field
|
||||
|
||||
**QSO Management**:
|
||||
- Fixed DELETE /api/qsos/all to handle foreign key constraints
|
||||
|
||||
Reference in New Issue
Block a user