Skip to content

Feature/migrate gsak filters - #935

Merged
AgreeDK merged 5 commits into
OpenSAK-Org:betafrom
nagisml:feature/migrate-gsak-filters
Sep 29, 2026
Merged

AgreeDK merged 5 commits into
OpenSAK-Org:betafrom
nagisml:feature/migrate-gsak-filters

Conversation

@nagisml

@nagisml nagisml commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

Feature list — feature/migrate-gsak-filters

Written for: reviewers of the branch.

File → Import GSAK Filters… reads the saved filters from GSAK's gsak.db3 (or the one inside a GSAK backup .zip) and writes them as OpenSAK filter profiles. It runs as a GUI task: you pick which filters to import, and it ends with a coverage report per condition.

Migrated to native filter rows

Cache types, container sizes, difficulty/terrain
Found / not found, DNF, FTF, premium, availability, locked, user flag, corrected coordinates
All text fields with every operator (regex included), user data 1–4, personal note, full-text search
Favourite points and elevation, as conditions
Distance, fixed at your home point
Bearing in degrees and compass quadrants, both as Direction
Date fields, including rolling windows ("during the last N days") and "compared with" another date (the order of GSAK's lists is assumed — check after import)
The Logs tab: log types, groups, last N logs, finder name or ID, date, count and include/exclude
The Waypoints tab: type, text, date, "created by me", count
Attributes, area selection (line or polygon), TB/coin name and "has / no trackables"
Reverse filter, as Invert filter

Migrated with a known difference (noted in the import report)

Last N logs: GSAK counts within the ticked log groups, OpenSAK over all logs. They agree when all three groups are ticked.
Bearing: measured from the active centre point, and only as fresh as the last distance recalculation.
Record created date / Last GPX update: OpenSAK stamps these locally, not from GSAK's values.
Migrated as SQL in the Where tab (it runs, but there's no filter row for it)

Watch list, user sort, my found count
Source file, "last user update" date, attributes that must be absent
Distance when no home point is set
A bearing that sits next to compass quadrants
GSAK's own WHERE clause, when it translates cleanly

Not migrated (left as -- comments in the Where tab, to rebuild by hand)

GSAK user-defined columns
The Waymark and L&F Celebration cache types
Regex on fields that only exist as SQL
Comparisons involving "Last user update"
GSAK macro variables, and any WHERE clause that doesn't translate

nagisml and others added 5 commits September 29, 2026 09:29
Map GSAK criteria that previously fell back to Where-SQL or comments onto
the filter rows now available on beta:

- User data 1-4 -> UserData1-4Filter (regex operators now run too)
- User note yes/no -> UserNoteFilter (not_empty / empty)
- Elevation -> ElevationFilter
- Compass quadrants -> DirectionFilter
- Open-ended/equal distance -> DistanceFilter op at_least / equal
- GSAK "reverse filter" -> FilterSet negate (global Invert filter)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- TB/coin name -> Trackables tab name row (all text operators, regex included)
- "has no trackables" -> TrackableFilter count equal 0
- A TB name combined with "no trackables" can never match; the name is
  left as a comment so the dialog's single trackable row stays intact

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nagisml

nagisml commented Sep 29, 2026

Copy link
Copy Markdown
Contributor Author

implementation of #891

@AgreeDK

AgreeDK commented Sep 29, 2026

Copy link
Copy Markdown
Member

@nagisml
I am in the process of building and release stable v1.20.0 for all platforms incl Microsoft Store, when it done I will review this.

@AgreeDK
AgreeDK merged commit 6dcc0a9 into OpenSAK-Org:beta Sep 29, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants