feat: bulk-edit the contacted station's gridsquare

An import that drops the locator leaves it missing on a whole batch, and fixing
that one QSO at a time is exactly what bulk edit exists to avoid.

Added on all three sides in lockstep — the dialog field, the field-to-column map,
and the repository whitelist — because they are separate lists and offering a
field the repository refuses fails only at Apply, after the operator has selected
the QSOs. The existing contract test covers it.

The callsign and RST stay excluded, as before: bulk-setting those corrupts a log.
The locator does not carry that risk — it identifies a place, not a station, and
a wrong value is simply overwritten again.
This commit is contained in:
2026-07-29 09:00:35 +02:00
parent 3b296b19ab
commit a1c4305f20
5 changed files with 11 additions and 2 deletions
+5
View File
@@ -793,6 +793,11 @@ var bulkEditableCols = map[string]bool{
// here, so choosing one failed at Apply. The rest of the contacted station
// (callsign, name, RST…) stays deliberately out: bulk-setting those would
// corrupt the log.
// grid: the locator an import loses wholesale. Correcting it one QSO at a
// time is what the operator is trying to avoid, and unlike the callsign it
// carries no risk of confusing two stations — a wrong value is simply
// overwritten again.
"grid": true,
"state": true,
"cnty": true,
// Contest — the exchange/label fields that are constant across a run.