Skip to content

POTA/SOTA: connect spots to tune and QSO logging workflows #535

Description

@rtreit

Parent: #184

Related: #384

Summary

Turn engine-owned POTA/SOTA spots into a fast tune-and-log workflow after the spot feed and first-class portable activity fields exist.

POTACAT is a useful behavioral reference: it combines spot selection, CAT tuning, park/summit reference capture, P2P entry, distance/bearing, and worked-before/dupe feedback. QsoRipper should provide the equivalent workflow through its own engine and UI contracts rather than consuming POTACAT's private spot state.

Behavior

  • Selecting a spot can tune the configured radio through existing CAT abstractions.
  • Prefill worked callsign, frequency, mode, and the worked POTA/SOTA reference.
  • If an activation session is active, retain its local references and session link.
  • Never create a QSO until the operator explicitly saves/logs it.
  • Handle missing or inferred spot modes visibly.
  • Preserve operator edits made after prefill.
  • Surface stale spots and tune failures without blocking manual logging.
  • Provide worked-before and activation-aware duplicate feedback using existing QSO history.

UX

  • Add keyboard commands and discoverable actions in TUI and GUI.
  • Keep tune and log as distinct actions even when one shortcut can chain them.
  • Return focus to the high-frequency logging field after save.
  • Make P2P/S2S references editable before save.

Dependencies

Tests

  • Spot-to-form mapping for POTA and SOTA.
  • Missing mode, stale spot, tune failure, and operator override cases.
  • Active-session P2P/S2S logging.
  • TUI/GUI behavior parity.

Acceptance criteria

  • A spotted activator can be tuned and prepared for logging without retyping call, frequency, mode, or reference.
  • No spot is persisted as a QSO without explicit operator action.
  • Active local activation context remains intact.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions