From 4a10aa6d661ed1fe06623bb3ae7a0b52b2a81997 Mon Sep 17 00:00:00 2001 From: Christoph Coijanovic Date: Thu, 3 Sep 2026 13:29:29 +0200 Subject: Sort tracks in browse view by uphill. --- fietsboek/locale/de/LC_MESSAGES/messages.mo | Bin 20685 -> 20748 bytes fietsboek/locale/de/LC_MESSAGES/messages.po | 4 ++++ fietsboek/locale/en/LC_MESSAGES/messages.mo | Bin 19490 -> 19545 bytes fietsboek/locale/en/LC_MESSAGES/messages.po | 4 ++++ fietsboek/templates/browse.jinja2 | 2 ++ fietsboek/views/browse.py | 6 ++++++ 6 files changed, 16 insertions(+) diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.mo b/fietsboek/locale/de/LC_MESSAGES/messages.mo index 25b4a89..71b7ce8 100644 Binary files a/fietsboek/locale/de/LC_MESSAGES/messages.mo and b/fietsboek/locale/de/LC_MESSAGES/messages.mo differ diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.po b/fietsboek/locale/de/LC_MESSAGES/messages.po index bdd53a7..14f3e63 100644 --- a/fietsboek/locale/de/LC_MESSAGES/messages.po +++ b/fietsboek/locale/de/LC_MESSAGES/messages.po @@ -326,6 +326,10 @@ msgid "page.browse.sort.length" msgstr "Nach Länge sortieren" #: fietsboek/templates/browse.jinja2:125 fietsboek/templates/browse.jinja2:126 +msgid "page.browse.sort.uphill" +msgstr "Nach Bergauf sortieren" + +#: fietsboek/templates/browse.jinja2:127 fietsboek/templates/browse.jinja2:128 msgid "page.browse.sort.duration" msgstr "Nach Dauer sortieren" diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.mo b/fietsboek/locale/en/LC_MESSAGES/messages.mo index b0c8a9c..364b305 100644 Binary files a/fietsboek/locale/en/LC_MESSAGES/messages.mo and b/fietsboek/locale/en/LC_MESSAGES/messages.mo differ diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.po b/fietsboek/locale/en/LC_MESSAGES/messages.po index e75d0e0..311f1aa 100644 --- a/fietsboek/locale/en/LC_MESSAGES/messages.po +++ b/fietsboek/locale/en/LC_MESSAGES/messages.po @@ -326,6 +326,10 @@ msgid "page.browse.sort.length" msgstr "Sort by length" #: fietsboek/templates/browse.jinja2:125 fietsboek/templates/browse.jinja2:126 +msgid "page.browse.sort.uphill" +msgstr "Sort by uphill" + +#: fietsboek/templates/browse.jinja2:127 fietsboek/templates/browse.jinja2:128 msgid "page.browse.sort.duration" msgstr "Sort by duration" diff --git a/fietsboek/templates/browse.jinja2 b/fietsboek/templates/browse.jinja2 index 28693f6..f1420b8 100644 --- a/fietsboek/templates/browse.jinja2 +++ b/fietsboek/templates/browse.jinja2 @@ -122,6 +122,8 @@ + + diff --git a/fietsboek/views/browse.py b/fietsboek/views/browse.py index e2742ad..d823f69 100644 --- a/fietsboek/views/browse.py +++ b/fietsboek/views/browse.py @@ -90,6 +90,8 @@ class ResultOrder(Enum): LENGTH_DESC = "length-desc" DURATION_ASC = "duration-asc" DURATION_DESC = "duration-desc" + UPHILL_ASC = "uphill-asc" + UPHILL_DESC = "uphill-desc" class Filter: @@ -415,6 +417,10 @@ def apply_order(query: Select, track: AliasedTrack, order: ResultOrder) -> Selec query = query.order_by(models.TrackCache.length.desc()) elif order == ResultOrder.LENGTH_ASC: query = query.order_by(models.TrackCache.length.asc()) + elif order == ResultOrder.UPHILL_DESC: + query = query.order_by(models.TrackCache.uphill.desc()) + elif order == ResultOrder.UPHILL_ASC: + query = query.order_by(models.TrackCache.uphill.asc()) elif order == ResultOrder.DURATION_DESC: query = query.order_by( (models.TrackCache.moving_time + models.TrackCache.stopped_time).desc() -- cgit v1.2.3 From 1755771ece5ab9bc095578fb4ad54be9e86feb70 Mon Sep 17 00:00:00 2001 From: Christoph Coijanovic Date: Thu, 3 Sep 2026 14:02:28 +0200 Subject: added minimum and maximum uphill filters to browse view --- fietsboek/locale/de/LC_MESSAGES/messages.mo | Bin 20748 -> 20960 bytes fietsboek/locale/de/LC_MESSAGES/messages.po | 12 ++++++++++++ fietsboek/locale/en/LC_MESSAGES/messages.mo | Bin 19545 -> 19742 bytes fietsboek/locale/en/LC_MESSAGES/messages.po | 12 ++++++++++++ fietsboek/templates/browse.jinja2 | 20 ++++++++++++++++++++ fietsboek/views/browse.py | 28 ++++++++++++++++++++++++++++ 6 files changed, 72 insertions(+) diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.mo b/fietsboek/locale/de/LC_MESSAGES/messages.mo index 71b7ce8..ec717d2 100644 Binary files a/fietsboek/locale/de/LC_MESSAGES/messages.mo and b/fietsboek/locale/de/LC_MESSAGES/messages.mo differ diff --git a/fietsboek/locale/de/LC_MESSAGES/messages.po b/fietsboek/locale/de/LC_MESSAGES/messages.po index 14f3e63..3d6c4aa 100644 --- a/fietsboek/locale/de/LC_MESSAGES/messages.po +++ b/fietsboek/locale/de/LC_MESSAGES/messages.po @@ -269,6 +269,18 @@ msgstr "Längenbeschränkungen" msgid "page.browse.filter.length_maximum" msgstr "Maximale Länge" +#: fietsboek/templates/browse.jinja2:34 +msgid "page.browse.filter.uphill_minimum" +msgstr "Minimaler Bergauf" + +#: fietsboek/templates/browse.jinja2:40 +msgid "page.browse.filter.uphill_boundaries" +msgstr "Bergaufbeschränkungen" + +#: fietsboek/templates/browse.jinja2:46 +msgid "page.browse.filter.uphill_maximum" +msgstr "Maximaler Bergauf" + #: fietsboek/templates/browse.jinja2:59 msgid "page.browse.filter.date_boundaries" msgstr "Datumsgrenzen" diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.mo b/fietsboek/locale/en/LC_MESSAGES/messages.mo index 364b305..95464f3 100644 Binary files a/fietsboek/locale/en/LC_MESSAGES/messages.mo and b/fietsboek/locale/en/LC_MESSAGES/messages.mo differ diff --git a/fietsboek/locale/en/LC_MESSAGES/messages.po b/fietsboek/locale/en/LC_MESSAGES/messages.po index 311f1aa..b94eb76 100644 --- a/fietsboek/locale/en/LC_MESSAGES/messages.po +++ b/fietsboek/locale/en/LC_MESSAGES/messages.po @@ -269,6 +269,18 @@ msgstr "Length limits" msgid "page.browse.filter.length_maximum" msgstr "Maximum length" +#: fietsboek/templates/browse.jinja2:34 +msgid "page.browse.filter.uphill_minimum" +msgstr "Minimum uphill" + +#: fietsboek/templates/browse.jinja2:40 +msgid "page.browse.filter.uphill_boundaries" +msgstr "Uphill limits" + +#: fietsboek/templates/browse.jinja2:46 +msgid "page.browse.filter.uphill_maximum" +msgstr "Maximum uphill" + #: fietsboek/templates/browse.jinja2:59 msgid "page.browse.filter.date_boundaries" msgstr "Date limits" diff --git a/fietsboek/templates/browse.jinja2 b/fietsboek/templates/browse.jinja2 index f1420b8..b4a99b2 100644 --- a/fietsboek/templates/browse.jinja2 +++ b/fietsboek/templates/browse.jinja2 @@ -48,6 +48,26 @@ +
+
+ + + m +
+
+ +
+ {{ _("page.browse.filter.uphill_boundaries") }} +
+ +
+
+ + + m +
+
+
diff --git a/fietsboek/views/browse.py b/fietsboek/views/browse.py index d823f69..44aba38 100644 --- a/fietsboek/views/browse.py +++ b/fietsboek/views/browse.py @@ -342,6 +342,34 @@ class FilterCollection(Filter): ) ) + if request.params.get("min-uphill"): + min_uphill = _get_int(request, "min-uphill") + filters.append( + LambdaFilter( + lambda query, track: query.where( + or_( + models.TrackCache.uphill >= min_uphill, + models.TrackCache.uphill == None, # noqa: E711 + ) + ), + lambda track: track.uphill >= min_uphill, + ) + ) + + if request.params.get("max-uphill"): + max_uphill = _get_int(request, "max-uphill") + filters.append( + LambdaFilter( + lambda query, track: query.where( + or_( + models.TrackCache.uphill <= max_uphill, + models.TrackCache.uphill == None, # noqa: E711 + ) + ), + lambda track: track.uphill <= max_uphill, + ) + ) + if request.params.get("min-date"): min_date = _get_date(request, "min-date") min_date = datetime.datetime.combine(min_date, datetime.time.min) -- cgit v1.2.3 From def6ef9b79ac2885dedc14dd2a1e1c9cd6285d3f Mon Sep 17 00:00:00 2001 From: Christoph Coijanovic Date: Thu, 3 Sep 2026 14:42:20 +0200 Subject: added comment on pylint warning in parse function --- fietsboek/views/browse.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fietsboek/views/browse.py b/fietsboek/views/browse.py index 44aba38..490b9b4 100644 --- a/fietsboek/views/browse.py +++ b/fietsboek/views/browse.py @@ -297,7 +297,7 @@ class FilterCollection(Filter): :param request: The request. :return: The parsed filter. """ - # pylint: disable=singleton-comparison + # pylint: disable=singleton-comparison,too-many-branches filters: list[Filter] = [] if request.params.get("search-terms"): term = request.params.get("search-terms").strip() -- cgit v1.2.3