From 8b921624666141c09cf20e2e0ee3cbe260a6412d Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Mon, 24 Aug 2026 09:27:29 +0200 Subject: Add type filtering, drop hard-coded filters and route filter, tune backtest --- web/rides.go | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) (limited to 'web/rides.go') diff --git a/web/rides.go b/web/rides.go index 477f066..81017d9 100644 --- a/web/rides.go +++ b/web/rides.go @@ -94,28 +94,9 @@ func (s *Server) handleAnalytics(w http.ResponseWriter, r *http.Request) { return } filters := parseRideFilters(r.URL.Query()) - minKm := minimumDisplayedDistanceM / 1000 - if filters.DistanceMinKm != nil && *filters.DistanceMinKm > minKm { - minKm = *filters.DistanceMinKm - } - maxKm := 0 - if filters.DistanceMaxKm != nil { - maxKm = *filters.DistanceMaxKm - } - eligible := make([]ride.StoredRide, 0, len(items)) - for _, item := range items { - distanceKm := int(item.DistanceM / 1000) - if distanceKm < minKm || (maxKm != 0 && distanceKm > maxKm) { - continue - } - eligible = append(eligible, item) - } - filterView := RideFilterView{ - DistanceMinKm: rideFilterValue(filters.DistanceMinKm, rideFilterDistanceMinKm), - DistanceMaxKm: rideFilterValue(filters.DistanceMaxKm, rideFilterDistanceMaxKm), - Active: filters.Active(), - ResetURL: "/analytics", - } + eligible := filterRides(items, filters) + filterView := buildRideFilterView(filters, RideSort{}) + filterView.ResetURL = "/analytics" slog.Info("Loaded ride analytics", "rides", len(eligible)) kcore.RenderPage(r.Context(), AnalyticsPage(AnalyticsPageData{ Points: buildAnalyticsPoints(eligible), @@ -197,15 +178,11 @@ func (s *Server) listRides(rideSort RideSort) ([]ride.StoredRide, error) { return ride.ListSorted(s.db, column, rideSort.Descending) } -const minimumDisplayedDistanceM = 10_000 const rideDetailMountainPassMarginM = 10_000 func buildRideViews(items []ride.StoredRide) []RideView { views := make([]RideView, 0, len(items)) for _, item := range items { - if item.DistanceM < minimumDisplayedDistanceM { - continue - } views = append(views, buildRideView(item)) } return views -- cgit v1.3