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.
11 lines
763 B
SQL
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;
|