docs: expand Awards wiki — Test/Explain, Missing refs, n-fer, catalog updates
The matching "five rules" were already documented; add the parts that were only in code: the per-QSO Explain trace (Test a callsign in the award editor), the Missing-refs gap finder (in-scope-but-no-reference + bulk assign), how one QSO credits several references (n-fer POTA / VUCC grid lines, comma/semicolon split), code-vs-exact matching, and how built-in award updates skip awards you've edited.
This commit is contained in:
@@ -23,6 +23,17 @@ Plus a **leading/trailing** strip, a **prefix** prepended to found references, a
|
|||||||
**dynamic** mode (any value counts, like POTA), and the **fallback searches**
|
**dynamic** mode (any value counts, like POTA), and the **fallback searches**
|
||||||
described below.
|
described below.
|
||||||
|
|
||||||
|
**One QSO can count for several references.** A contact always yields *every*
|
||||||
|
reference its field holds — the value is split on commas and semicolons, so an
|
||||||
|
n-fer POTA activation logged as `US-6544,US-0680` credits both parks, and a
|
||||||
|
grid-line VUCC contact credits each grid. There is no "one reference per QSO"
|
||||||
|
switch — it was never useful.
|
||||||
|
|
||||||
|
**Match by `code`** looks up each token of the field in the reference list (so a
|
||||||
|
partial or multi-value field still resolves), while **`exact match`** requires
|
||||||
|
the whole field to equal the reference. Use exact match when a substring would
|
||||||
|
cause false hits.
|
||||||
|
|
||||||
### The five rules to remember
|
### The five rules to remember
|
||||||
|
|
||||||
1. **Every regex is case-insensitive.** Award and per-reference patterns match
|
1. **Every regex is case-insensitive.** Award and per-reference patterns match
|
||||||
@@ -72,6 +83,42 @@ A custom province award where the log rarely spells the province out (it names a
|
|||||||
Now a QSO is resolved by the province **name** if present, else by a **city**
|
Now a QSO is resolved by the province **name** if present, else by a **city**
|
||||||
regex — first in the QTH, then in the address. First hit wins.
|
regex — first in the QTH, then in the address. First hit wins.
|
||||||
|
|
||||||
|
## Why doesn't a QSO count? — Test & Missing refs
|
||||||
|
|
||||||
|
An award that matches nothing is the hardest thing to debug: the column is just
|
||||||
|
empty, and you can't tell whether the QSO was out of scope, the field was empty,
|
||||||
|
the rule looked in the wrong place, or the reference isn't on the list. Two tools
|
||||||
|
answer that.
|
||||||
|
|
||||||
|
### Test a callsign (award editor)
|
||||||
|
|
||||||
|
In the **award editor** there's a **Test** box: type a callsign and OpsLog
|
||||||
|
replays that award's rules against every QSO you have with that station and shows
|
||||||
|
what happened, step by step — the exact same code path the real matcher uses, so
|
||||||
|
what you see is what actually runs. For each contact it reports:
|
||||||
|
|
||||||
|
- whether the QSO is **in scope** (and, if not, *why* — wrong DXCC, band, mode,
|
||||||
|
emission, or outside the valid-from/to dates);
|
||||||
|
- each rule in turn (**primary**, then **Fallback 1, 2, …**), the **field value**
|
||||||
|
it scanned, the **candidates** it produced, which ones were **kept**, and which
|
||||||
|
were **rejected** (with the reason — e.g. "not on the reference list");
|
||||||
|
- rules that were **skipped** because an earlier one already matched;
|
||||||
|
- any **manual** reference you assigned by hand;
|
||||||
|
- the final **result** — what the QSO counts for.
|
||||||
|
|
||||||
|
This is the fastest way to fix a rule: if the primary scanned the wrong field, or
|
||||||
|
a candidate was rejected as unlisted, the trace says so directly.
|
||||||
|
|
||||||
|
### Missing refs (awards panel)
|
||||||
|
|
||||||
|
For an award scoped to a DXCC entity (DDFM, WAS, RAC, WAJA…), the **Missing refs**
|
||||||
|
view lists contacts that ARE in scope (right DXCC / band / mode / dates) **but
|
||||||
|
where no reference was found** — so they don't count yet. Sort by a column, tick
|
||||||
|
the matching contacts, and **assign the reference** to all of them at once (or
|
||||||
|
click a row to open the QSO and fix the field). Recompute and the fixed contacts
|
||||||
|
drop off the list. This is how you close the gaps a matcher can't fill on its own
|
||||||
|
(a French QSO logged without its department, say).
|
||||||
|
|
||||||
## Live detection & manual refs
|
## Live detection & manual refs
|
||||||
|
|
||||||
- References are detected **live** as you enter a callsign.
|
- References are detected **live** as you enter a callsign.
|
||||||
@@ -89,6 +136,15 @@ regex — first in the QTH, then in the address. First hit wins.
|
|||||||
or **both**. Award columns are opt-in per the Columns picker
|
or **both**. Award columns are opt-in per the Columns picker
|
||||||
([[Recent QSOs and Filters]]).
|
([[Recent QSOs and Filters]]).
|
||||||
|
|
||||||
|
## Built-in updates vs your edits
|
||||||
|
|
||||||
|
Built-in awards ship with the app, definition **and** reference list. When a
|
||||||
|
newer version fixes a shipped award (a better fallback chain, a corrected
|
||||||
|
reference list), OpsLog offers to apply that update — **unless you've edited that
|
||||||
|
award yourself**, in which case your version is left alone (your work outranks
|
||||||
|
ours). Awards you created are never touched by updates. So you can freely tune a
|
||||||
|
built-in award without fear of a future release overwriting it.
|
||||||
|
|
||||||
## Rescan
|
## Rescan
|
||||||
|
|
||||||
**Rescan** re-pulls the logbook and recomputes — it picks up fresh LoTW / QRZ /
|
**Rescan** re-pulls the logbook and recomputes — it picks up fresh LoTW / QRZ /
|
||||||
|
|||||||
Reference in New Issue
Block a user