[docs](trx-rs): write down how a contest and a confirmation are worked
CI / frontend (pull_request) Successful in 5m12s
CI / reuse (pull_request) Successful in 5s
CI / test (push) Successful in 8m0s
CI / lint (pull_request) Successful in 2m22s
CI / test (pull_request) Successful in 8m57s
CI / lint (push) Successful in 2m32s
CI / frontend (push) Successful in 4m13s
CI / reuse (push) Successful in 6s
CI / frontend (pull_request) Successful in 5m12s
CI / reuse (pull_request) Successful in 5s
CI / test (push) Successful in 8m0s
CI / lint (pull_request) Successful in 2m22s
CI / test (pull_request) Successful in 8m57s
CI / lint (push) Successful in 2m32s
CI / frontend (push) Successful in 4m13s
CI / reuse (push) Successful in 6s
The manual gains the contest exchange, the Cabrillo entry and the confirmations. The plan marks all five phases done, corrects the API paths to the /api/logbook they were built under -- /logbook is the page, and the bookmarks API already shadows its own page that way -- and records the two decisions phase 5 settled: that the Cabrillo header comes from the operator because no log can derive it, and that a confirmation counts from whichever bureau answered. The plan itself travels with this branch: it was written on a branch of its own that was never proposed for merge, and the earlier attempts to update it from the implementation branches were silent no-ops, because the edits did not assert that they had found what they were replacing. Refs #54 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SyX26FCpMQxiBoC7r5K1A7 Signed-off-by: Stan Grams <sjg@haxx.space>
This commit was merged in pull request #60.
This commit is contained in:
+24
-10
@@ -453,23 +453,29 @@ put in the exchange there is nothing for it to write.
|
||||
| `RigState` | `FREQ`, `BAND`, `MODE`/`SUBMODE`, and the rig id a QSO was made on | watch channel already in the frontend context |
|
||||
| Client config `general.callsign` | `STATION_CALLSIGN`, and the default `OPERATOR` | already surfaced as `owner_callsign` in frontend meta |
|
||||
| The QSO's own rig, and its position | `MY_GRIDSQUARE` | per-rig latitude and longitude already carried in the rig list |
|
||||
| Server clock | `QSO_DATE`, `TIME_ON` in UTC | new `GET /logbook/now`, which also feeds the browser-clock check |
|
||||
| Server clock | `QSO_DATE`, `TIME_ON` in UTC | new `GET /api/logbook/now`, which also feeds the browser-clock check |
|
||||
| Decoder panels and map | a pre-filled entry: callsign, grid, and the report to offer | existing decode history; no new plumbing |
|
||||
| `bandForHz` | `BAND` from a frequency | exists in `map-core.ts`; move to a shared module |
|
||||
|
||||
#### HTTP API
|
||||
|
||||
Under `/api/logbook`, as the recorder's endpoints are, because `/logbook` itself is the page:
|
||||
the `/bookmarks` API and the bookmarks page already share a path, and whichever is registered
|
||||
first wins.
|
||||
|
||||
| Method | Path | Purpose |
|
||||
|--------|------|---------|
|
||||
| `GET` | `/logbook` | Query: filters, paging |
|
||||
| `POST` | `/logbook` | Add a QSO |
|
||||
| `PUT` | `/logbook/{id}` | Edit |
|
||||
| `DELETE` | `/logbook/{id}` | Delete |
|
||||
| `GET` | `/logbook/export.adi` | ADIF export, honouring the current filter |
|
||||
| `GET` | `/logbook/export.cbr` | Cabrillo export of a contest selection |
|
||||
| `POST` | `/logbook/import` | Import, answering with counts: added, duplicate, rejected |
|
||||
| `GET` | `/logbook/worked/{call}` | Worked-before: bands and modes |
|
||||
| `GET` | `/logbook/now` | The server's UTC clock, for stamping entries and checking the browser's |
|
||||
| `GET` | `/api/logbook` | Query: filters, paging |
|
||||
| `POST` | `/api/logbook` | Add a QSO |
|
||||
| `PUT` | `/api/logbook/{id}` | Edit |
|
||||
| `DELETE` | `/api/logbook/{id}` | Delete |
|
||||
| `GET` | `/api/logbook/export.adi` | ADIF export, honouring the current filter |
|
||||
| `GET` | `/api/logbook/export.cbr` | Cabrillo export of a contest selection |
|
||||
| `POST` | `/api/logbook/import` | Import, answering with counts: added, duplicate, rejected |
|
||||
| `GET` | `/api/logbook/worked/{call}` | Worked-before: bands and modes |
|
||||
| `GET` | `/api/logbook/statistics` | Contacts, stations and confirmations, per band |
|
||||
| `GET` | `/api/logbook/now` | The server's UTC clock, for checking the browser's |
|
||||
| `GET` | `/api/logbook/prefill` | The six fields an entry opens with |
|
||||
|
||||
Writes require the control role, as the rig endpoints do.
|
||||
|
||||
@@ -505,6 +511,8 @@ task and the rig is the instrument.
|
||||
|
||||
### Phases
|
||||
|
||||
All five are implemented.
|
||||
|
||||
| Phase | Lands |
|
||||
|-------|-------|
|
||||
| 1 | `trx-logbook`: `Qso`, the ADI reader and writer, round-trip tests against files from other loggers |
|
||||
@@ -513,6 +521,12 @@ task and the rig is the instrument.
|
||||
| 4 | Ham layout, pre-filled entry from a decode row or the map, worked-before |
|
||||
| 5 | Contest exchange fields and Cabrillo export; QSL and LoTW/eQSL fields; per-band worked/confirmed statistics |
|
||||
|
||||
Two decisions phase 5 settled. The Cabrillo header cannot be derived from a log — how many
|
||||
operators, how much power, what the score is claimed to be — so it comes from the operator,
|
||||
with `SINGLE-OP`, `LOW`, `ALL` and `MIXED` behind it. And a confirmation counts from whichever
|
||||
bureau answered: an award wants one card or one electronic match, not one of each, so a log
|
||||
that counted them separately would tell the operator they were short of what they have.
|
||||
|
||||
### Decisions
|
||||
|
||||
**One station log, not one per rig.** Awards and uploads are per station callsign — DXCC, WAS
|
||||
|
||||
Reference in New Issue
Block a user