Operators want a place to jot observations that aren't captured by
the structured fields — weather anecdotes, propagation mode
commentary, equipment details, band conditions. Add a text column
on contacts plus the two ingest paths users submit through:
* /submit single-contact form gets a 3-row textarea under the
other fields. Optional, max 2000 chars, with a live length cap
via maxlength. Whitespace-only input collapses to NULL so the
column reflects "no notes" rather than an empty string.
* CSV importer recognises a `notes` (or `note`) column via the
existing header_aliases table and flows values straight through
submission_changeset. Sample template gets a matching example
row with embedded commas so the quoted-field round-trip is
exercised on download.
ADIF import and the refinement/refinement-notify paths are out of
scope — users specifically asked for CSV + single-contact. Tests
cover the changeset (accept/blank/over-length), CSV header parsing
(plain + RFC-4180 quoted), and LiveView form submit end-to-end.
319 B
319 B
| 1 | station1 | station2 | grid1 | grid2 | band | mode | qso_timestamp | notes |
|---|---|---|---|---|---|---|---|---|
| 2 | W5XD | K5TR | EM12kp | EM00cd | 10000 | CW | 2024-06-15T14:30:00Z | Steady tropo across DFW — signals 20 over |
| 3 | N5AC | WA5LNL | EM12mr | EM13qa | 24000 | SSB | 2024-06-15T15:00:00Z | Heavy rain scatter, T=45C, copy on sideband |
| 4 | KG5CCI | W5LUA | EM13md | EL29fp | 47000 | CW | 2024-07-04T12:00:00Z |