docs: add modeGroups feature to award system specification
Document the modeGroups property for award definitions, which allows creating convenient multi-mode filters in the award detail view. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -71,6 +71,7 @@ Every award definition is a JSON object with the following structure:
|
||||
| `caption` | string | Yes | Detailed explanation of award requirements |
|
||||
| `category` | string | Yes | Grouping category for UI organization (e.g., "dxcc", "darc", "vucc") |
|
||||
| `rules` | object | Yes | Award calculation rules (see Rule Types below) |
|
||||
| `modeGroups` | object | No | Mode group definitions for award detail view filtering (see Mode Groups below) |
|
||||
|
||||
---
|
||||
|
||||
@@ -456,6 +457,85 @@ This creates: DLD 80m CW (only QSOs on 80m band AND CW mode count).
|
||||
|
||||
---
|
||||
|
||||
## Mode Groups
|
||||
|
||||
Mode groups allow awards to define convenient multi-mode filters for the award detail view. This feature enables users to filter by multiple modes at once (e.g., all digital modes combined).
|
||||
|
||||
### Structure
|
||||
|
||||
```json
|
||||
{
|
||||
"modeGroups": {
|
||||
"Group Display Name": ["mode1", "mode2", "mode3"],
|
||||
"Another Group": ["modeA", "modeB"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Properties
|
||||
|
||||
| Property | Type | Required | Description |
|
||||
|----------|------|----------|-------------|
|
||||
| Key | string | Yes | Display name shown in mode filter dropdown |
|
||||
| Value | array | Yes | Array of mode strings to include in the group |
|
||||
|
||||
### Behavior
|
||||
|
||||
- **Location**: Defined at award root level (not in `rules`)
|
||||
- **Optional**: Awards without `modeGroups` work as before (backward compatible)
|
||||
- **UI Integration**: Creates entries in mode filter dropdown with visual separator
|
||||
- **Filtering**: Selecting a mode group filter shows QSOs matching ANY mode in the group
|
||||
|
||||
### Example: DXCC with Mode Groups
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "dxcc",
|
||||
"name": "DXCC",
|
||||
"description": "Confirm 100 DXCC entities on HF bands",
|
||||
"caption": "Contact and confirm 100 different DXCC entities on HF bands (160m-10m).",
|
||||
"category": "dxcc",
|
||||
"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"]
|
||||
},
|
||||
"rules": {
|
||||
"type": "entity",
|
||||
"entityType": "dxcc",
|
||||
"target": 100,
|
||||
"allowed_bands": ["160m", "80m", "60m", "40m", "30m", "20m", "17m", "15m", "12m", "10m"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### UI Display
|
||||
|
||||
In the award detail view, the mode filter dropdown shows:
|
||||
- Mixed Mode (default - aggregates all modes by band)
|
||||
- ───── (visual separator)
|
||||
- Digi-Modes
|
||||
- Classic Digi-Modes
|
||||
- Mixed-Mode w/o WSJT-Modes
|
||||
- Phone-Modes
|
||||
- ───── (visual separator)
|
||||
- CW (individual modes)
|
||||
- FT8
|
||||
- SSB
|
||||
- etc.
|
||||
|
||||
### Common Mode Group Patterns
|
||||
|
||||
| Group Name | Modes | Use Case |
|
||||
|------------|-------|----------|
|
||||
| Digi-Modes | FT8, FT4, MFSK, PSK31, RTTY, JT65, JT9 | All digital modes |
|
||||
| Classic Digi-Modes | PSK31, RTTY, JT65, JT9 | Pre-WSJT digital modes |
|
||||
| Phone-Modes | AM, SSB, FM | All voice modes |
|
||||
| Mixed-Mode w/o WSJT | PSK31, RTTY, AM, SSB, FM, CW | Traditional mixed mode award |
|
||||
|
||||
---
|
||||
|
||||
## QSO Database Schema
|
||||
|
||||
The award system relies on QSO records with specific fields.
|
||||
|
||||
Reference in New Issue
Block a user