aboutsummaryrefslogtreecommitdiff
path: root/web/rides.go
diff options
context:
space:
mode:
Diffstat (limited to 'web/rides.go')
-rw-r--r--web/rides.go29
1 files changed, 3 insertions, 26 deletions
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