Summary
Two related gaps surfaced from Facebook feedback (Adventure Lab Cache workflow), both in the GPX export path (gps/garmin.py):
- "Mark as Found" doesn't create a log entry or let the user pick a date
Right-clicking a cache and choosing "Mark as Found" (cache_table.py::_toggle_found()) only sets cache.found = True. It does not:
set found_date (stays empty/unchanged)
create a corresponding Log row on the cache
Because the GPX export only serializes existing cache.logs entries into groundspeak:logs (it never synthesizes one from the found/found_date fields), a cache marked found this way exports with no groundspeak:finder entry and no "Found it" log at all. When the resulting GPX is imported into GSAK, GSAK sees no matching log and does not mark the cache as found — even though OpenSAK shows it as found.
This is a real workflow gap for Adventure Lab Caches specifically: geocaching.com auto-logs the parent AD Lab as found without a real per-stage log to import, so users rely entirely on manual marking, which currently produces nothing exportable.
Requested fix: a "Mark as Found" flow (dialog, not silent toggle) that:
lets the user pick a found date (default: today)
sets cache.found = True and cache.found_date
creates a matching Log row (type "Found it", finder = configured GC username, date = chosen date) so it round-trips correctly through GPX export/import
ideally, mirror GSAK's linkage: clearing the date clears found status and vice versa
- GPX export omits the long description entirely
gps/garmin.py's wpt export writes as cache.name and never writes groundspeak:long_description (or short_description) at all. Confirmed by reading the export code — there's no such element being generated. A user reported his OpenSAK→GSAK export lost the long listing description; GSAK's own GPX export includes it, so this is a straightforward omission on our side, not a GSAK-side compatibility issue.
Requested fix: add groundspeak:long_description (with html="True/False" as appropriate) to the wpt export, matching the standard Groundspeak GPX extension schema.
Reporter context
Reported via Facebook by Allyn Vaughn and Jason Collier (see thread [date]). Allyn has offered to upload his OpenSAK-exported GPX and a comparison GSAK-exported GPX for the same caches — worth requesting those once this issue is open, to confirm exact expected structure.
Related
db/found_updater.py (the "My Finds" reference-DB found-status updater) has the same underlying gap: it sets cache.found/found_date directly without creating a log entry, so caches synced this way have the same export problem.
Summary
Two related gaps surfaced from Facebook feedback (Adventure Lab Cache workflow), both in the GPX export path (gps/garmin.py):
Right-clicking a cache and choosing "Mark as Found" (cache_table.py::_toggle_found()) only sets cache.found = True. It does not:
set found_date (stays empty/unchanged)
create a corresponding Log row on the cache
Because the GPX export only serializes existing cache.logs entries into groundspeak:logs (it never synthesizes one from the found/found_date fields), a cache marked found this way exports with no groundspeak:finder entry and no "Found it" log at all. When the resulting GPX is imported into GSAK, GSAK sees no matching log and does not mark the cache as found — even though OpenSAK shows it as found.
This is a real workflow gap for Adventure Lab Caches specifically: geocaching.com auto-logs the parent AD Lab as found without a real per-stage log to import, so users rely entirely on manual marking, which currently produces nothing exportable.
Requested fix: a "Mark as Found" flow (dialog, not silent toggle) that:
lets the user pick a found date (default: today)
sets cache.found = True and cache.found_date
creates a matching Log row (type "Found it", finder = configured GC username, date = chosen date) so it round-trips correctly through GPX export/import
ideally, mirror GSAK's linkage: clearing the date clears found status and vice versa
gps/garmin.py's wpt export writes as cache.name and never writes groundspeak:long_description (or short_description) at all. Confirmed by reading the export code — there's no such element being generated. A user reported his OpenSAK→GSAK export lost the long listing description; GSAK's own GPX export includes it, so this is a straightforward omission on our side, not a GSAK-side compatibility issue.
Requested fix: add groundspeak:long_description (with html="True/False" as appropriate) to the wpt export, matching the standard Groundspeak GPX extension schema.
Reporter context
Reported via Facebook by Allyn Vaughn and Jason Collier (see thread [date]). Allyn has offered to upload his OpenSAK-exported GPX and a comparison GSAK-exported GPX for the same caches — worth requesting those once this issue is open, to confirm exact expected structure.
Related
db/found_updater.py (the "My Finds" reference-DB found-status updater) has the same underlying gap: it sets cache.found/found_date directly without creating a log entry, so caches synced this way have the same export problem.