From 10806900a46b4eba197af9fc768928c57bd33982 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Fri, 28 Aug 2026 10:19:15 +0200 Subject: Add touring ride type for cyclotourisme --- web/categories.go | 3 ++- web/frontend/analytics-logic.test.ts | 2 +- web/frontend/analytics-logic.ts | 3 ++- web/ride-filters.go | 1 + web/ride-filters_test.go | 3 ++- 5 files changed, 8 insertions(+), 4 deletions(-) (limited to 'web') diff --git a/web/categories.go b/web/categories.go index a76fa1c..74d871c 100644 --- a/web/categories.go +++ b/web/categories.go @@ -53,7 +53,7 @@ func rideCategoriesUpdateURL(id int64) string { } var bikeTypeOptions = []ride.BikeType{ride.BikeTypeRoad, ride.BikeTypeMTB} -var rideTypeOptions = []ride.RideType{ride.RideTypeTraining, ride.RideTypeIndoor, ride.RideTypeRace, ride.RideTypeTransport} +var rideTypeOptions = []ride.RideType{ride.RideTypeTraining, ride.RideTypeIndoor, ride.RideTypeRace, ride.RideTypeTransport, ride.RideTypeTouring} var bikeTypeLabels = map[ride.BikeType]string{ ride.BikeTypeRoad: "Road", @@ -65,6 +65,7 @@ var rideTypeLabels = map[ride.RideType]string{ ride.RideTypeIndoor: "Indoor", ride.RideTypeRace: "Race", ride.RideTypeTransport: "Transport", + ride.RideTypeTouring: "Touring", } func formatCategoryOrEmpty(value string) string { diff --git a/web/frontend/analytics-logic.test.ts b/web/frontend/analytics-logic.test.ts index 0d1f789..e5c6caf 100644 --- a/web/frontend/analytics-logic.test.ts +++ b/web/frontend/analytics-logic.test.ts @@ -71,7 +71,7 @@ test("empty ride and bike types land in an Unknown group", () => { const points = [makePoint({ rideType: "" }), makePoint({ rideType: "race" })]; assert.deepEqual(groupRidePoints(points, "rideType"), [ { label: "Race", count: 1, colorIndex: 2 }, - { label: "Unknown", count: 1, colorIndex: 4 }, + { label: "Unknown", count: 1, colorIndex: 5 }, ]); const bikes = [makePoint({ bikeType: "" }), makePoint({ bikeType: "road" })]; assert.deepEqual(groupRidePoints(bikes, "bikeType"), [ diff --git a/web/frontend/analytics-logic.ts b/web/frontend/analytics-logic.ts index 5da8b80..fe1a9f9 100644 --- a/web/frontend/analytics-logic.ts +++ b/web/frontend/analytics-logic.ts @@ -65,6 +65,7 @@ const rideTypeLabels: Record = { indoor: "Indoor", race: "Race", transport: "Transport", + touring: "Touring", }; const bikeTypeLabels: Record = { @@ -73,7 +74,7 @@ const bikeTypeLabels: Record = { mtb: "MTB", }; -const rideTypeOrder = ["training", "indoor", "race", "transport"]; +const rideTypeOrder = ["training", "indoor", "race", "transport", "touring"]; const bikeTypeOrder = ["road", "mtb"]; export const analyticsRideTypeLabel = (value: string): string => rideTypeLabels[value] ?? value; diff --git a/web/ride-filters.go b/web/ride-filters.go index 8535756..db925d9 100644 --- a/web/ride-filters.go +++ b/web/ride-filters.go @@ -239,6 +239,7 @@ func defaultRideTypes() []ride.RideType { ride.RideTypeTraining, ride.RideTypeIndoor, ride.RideTypeRace, + ride.RideTypeTouring, } } diff --git a/web/ride-filters_test.go b/web/ride-filters_test.go index 84c6417..b7abcf4 100644 --- a/web/ride-filters_test.go +++ b/web/ride-filters_test.go @@ -121,11 +121,12 @@ func TestFilterRidesDefaultsToAllRideTypesExceptTransport(t *testing.T) { {Name: "race", BikeType: ride.BikeTypeRoad, RideType: ride.RideTypeRace, GPXPath: "b.gpx"}, {Name: "indoor", BikeType: ride.BikeTypeRoad, RideType: ride.RideTypeIndoor, GPXPath: "c.gpx"}, {Name: "transport", BikeType: ride.BikeTypeRoad, RideType: ride.RideTypeTransport, GPXPath: "d.gpx"}, + {Name: "touring", BikeType: ride.BikeTypeRoad, RideType: ride.RideTypeTouring, GPXPath: "e.gpx"}, } filtered := filterRides(items, parseRideFilters(url.Values{})) - require.Len(t, filtered, 3) + require.Len(t, filtered, 4) assert.False(t, parseRideFilters(url.Values{}).Active()) for _, item := range filtered { assert.NotEqual(t, ride.RideTypeTransport, item.RideType) -- cgit v1.3