Files
OpsLog/internal/db/migrations/0023_award_refs.sql
T
rouggy 64b746f007 feat: materialize award references into the QSO row (award_refs column)
Award refs are now computed once and stored on the QSO as a JSON column
(award_refs, e.g. {"DDFM":"74","WAJA":"12"}) instead of recomputing the whole
award engine on every grid page load. Written on log/edit/UDP-import and
bulk-recomputed when an award definition or reference list changes; a one-time
per-logbook backfill materializes pre-existing QSOs. The grid reads the column
directly like any other field, so it's fast and available everywhere (including
the shared MySQL logbook).

Also fix per-profile grid column layout: the DB copy was already per-profile,
but the localStorage cache used one global namespace and shadowed it, so a
profile switch kept the previous profile's columns/widths. gridPrefs now scopes
the cache by active profile id and the grids remount on profile:changed.
2026-07-20 11:51:49 +02:00

11 lines
763 B
SQL

-- Materialised award references per QSO. As soon as a QSO matches an award
-- (via the operator's award definitions) or a reference is set by hand, the
-- resolved reference(s) are stored here as a compact JSON object keyed by award
-- code, e.g. {"DDFM":"74","WAJA":"12"}. The grid's per-award columns then read
-- straight from the row like any other column instead of recomputing the whole
-- award engine on every page load — much faster, and easy to display anywhere
-- (including the shared MySQL logbook). Kept in step by the app: written on log
-- / edit / UDP-import and bulk-recomputed when an award definition or reference
-- list changes. SQLite ADD COLUMN is metadata-only, fast even on large logbooks.
ALTER TABLE qso ADD COLUMN award_refs TEXT;