From e7708b9ece2920e320c818cad21473b53406b413 Mon Sep 17 00:00:00 2001
From: antoine
Date: Fri, 20 Aug 2021 07:33:55 +0200
Subject: [PATCH 01/15] Add new sports with temporary pictures
---
fittrackee/database_utils.py | 20 ++++++++++++++++++
.../public/img/sports/alpine-skiing.png | Bin 0 -> 4406 bytes
.../img/sports/cross-country-skiing.png | Bin 0 -> 4406 bytes
.../img/sports/electric-mountain-biking.png | Bin 0 -> 4406 bytes
fittrackee_client/public/img/sports/trail.png | Bin 0 -> 3104 bytes
5 files changed, 20 insertions(+)
create mode 100644 fittrackee_client/public/img/sports/alpine-skiing.png
create mode 100644 fittrackee_client/public/img/sports/cross-country-skiing.png
create mode 100644 fittrackee_client/public/img/sports/electric-mountain-biking.png
create mode 100644 fittrackee_client/public/img/sports/trail.png
diff --git a/fittrackee/database_utils.py b/fittrackee/database_utils.py
index 6cda5066..7570a26b 100644
--- a/fittrackee/database_utils.py
+++ b/fittrackee/database_utils.py
@@ -33,14 +33,34 @@ def init_database(app: Flask) -> None:
sport.img = '/img/sports/mountain-biking.png'
sport.is_default = True
db.session.add(sport)
+ sport = Sport(label='Mountain Biking (Electric)')
+ sport.img = '/img/sports/electric-mountain-biking.png'
+ sport.is_default = True
+ db.session.add(sport)
sport = Sport(label='Running')
sport.img = '/img/sports/running.png'
sport.is_default = True
db.session.add(sport)
+ sport = Sport(label='Trail')
+ sport.img = '/img/sports/trail.png'
+ sport.is_default = True
+ db.session.add(sport)
sport = Sport(label='Walking')
sport.img = '/img/sports/walking.png'
sport.is_default = True
db.session.add(sport)
+ sport = Sport(label='Skiing (Alpine)')
+ sport.img = '/img/sports/alpine-skiing.png'
+ sport.is_default = True
+ db.session.add(sport)
+ sport = Sport(label='Skiing (Cross Country)')
+ sport.img = '/img/sports/cross-country-skiing.png'
+ sport.is_default = True
+ db.session.add(sport)
+ sport = Sport(label='Rowing')
+ sport.img = '/img/sports/rowing.png'
+ sport.is_default = True
+ db.session.add(sport)
db.session.commit()
_, db_app_config = init_config()
update_app_config_from_database(app, db_app_config)
diff --git a/fittrackee_client/public/img/sports/alpine-skiing.png b/fittrackee_client/public/img/sports/alpine-skiing.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b26acfc13e66f22270edd0a270966e76b5fbabd
GIT binary patch
literal 4406
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
JtaD0e0ssw|G&cYM
literal 0
HcmV?d00001
diff --git a/fittrackee_client/public/img/sports/cross-country-skiing.png b/fittrackee_client/public/img/sports/cross-country-skiing.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b26acfc13e66f22270edd0a270966e76b5fbabd
GIT binary patch
literal 4406
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
JtaD0e0ssw|G&cYM
literal 0
HcmV?d00001
diff --git a/fittrackee_client/public/img/sports/electric-mountain-biking.png b/fittrackee_client/public/img/sports/electric-mountain-biking.png
new file mode 100644
index 0000000000000000000000000000000000000000..9b26acfc13e66f22270edd0a270966e76b5fbabd
GIT binary patch
literal 4406
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
JtaD0e0ssw|G&cYM
literal 0
HcmV?d00001
diff --git a/fittrackee_client/public/img/sports/trail.png b/fittrackee_client/public/img/sports/trail.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe4a2814f150dfd95d4d5f96b48026ebba2b4730
GIT binary patch
literal 3104
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
Mr>mdKI;Vst0Ej-1tpET3
literal 0
HcmV?d00001
From 660190d368cd54aa0c9c149126abc0891e4ce0df Mon Sep 17 00:00:00 2001
From: antoine
Date: Fri, 20 Aug 2021 07:35:50 +0200
Subject: [PATCH 02/15] Add elevation in stats and dashboard and update
translations
---
fittrackee/workouts/stats.py | 21 +++++++++++++++++--
.../components/Common/Stats/StatsChart.jsx | 18 ++++++++++++++++
.../src/components/Dashboard/WorkoutCard.jsx | 18 ++++++++++++++++
.../src/components/Workouts/WorkoutsList.jsx | 14 +++++++++++++
fittrackee_client/src/locales/en/sports.json | 7 ++++++-
.../src/locales/en/statistics.json | 2 ++
fittrackee_client/src/locales/fr/sports.json | 7 ++++++-
.../src/locales/fr/statistics.json | 2 ++
.../src/locales/fr/workouts.json | 4 ++--
fittrackee_client/src/utils/stats.js | 14 +++++++++++++
fittrackee_client/src/utils/workouts.js | 18 +++++++++-------
11 files changed, 112 insertions(+), 13 deletions(-)
diff --git a/fittrackee/workouts/stats.py b/fittrackee/workouts/stats.py
index 80de9480..de9a97a5 100644
--- a/fittrackee/workouts/stats.py
+++ b/fittrackee/workouts/stats.py
@@ -67,6 +67,8 @@ def get_workouts(
'nb_workouts': 0,
'total_distance': 0.0,
'total_duration': 0,
+ 'total_ascent': 0.0,
+ 'total_descent': 0.0,
}
workouts_list_by_sport[sport_id]['nb_workouts'] += 1
workouts_list_by_sport[sport_id]['total_distance'] += float(
@@ -75,6 +77,12 @@ def get_workouts(
workouts_list_by_sport[sport_id][
'total_duration'
] += convert_timedelta_to_integer(workout.moving)
+ workouts_list_by_sport[sport_id]['total_ascent'] += float(
+ workout.ascent
+ )
+ workouts_list_by_sport[sport_id]['total_descent'] += float(
+ workout.descent
+ )
# filter_type == 'by_time'
else:
@@ -110,6 +118,8 @@ def get_workouts(
'nb_workouts': 0,
'total_distance': 0.0,
'total_duration': 0,
+ 'total_ascent': 0.0,
+ 'total_descent': 0.0,
}
workouts_list_by_time[time_period][sport_id][
'nb_workouts'
@@ -119,8 +129,15 @@ def get_workouts(
] += float(workout.distance)
workouts_list_by_time[time_period][sport_id][
'total_duration'
- ] += convert_timedelta_to_integer(workout.moving)
-
+ ] += convert_timedelta_to_integer(workout.moving)
+ if workout.ascent:
+ workouts_list_by_time[time_period][sport_id][
+ 'total_ascent'
+ ] += float(workout.ascent / 1000)
+ if workout.descent:
+ workouts_list_by_time[time_period][sport_id][
+ 'total_descent'
+ ] += float(workout.descent / 1000)
return {
'status': 'success',
'data': {
diff --git a/fittrackee_client/src/components/Common/Stats/StatsChart.jsx b/fittrackee_client/src/components/Common/Stats/StatsChart.jsx
index ca3678f1..1862b0d5 100644
--- a/fittrackee_client/src/components/Common/Stats/StatsChart.jsx
+++ b/fittrackee_client/src/components/Common/Stats/StatsChart.jsx
@@ -53,6 +53,24 @@ export default class StatsCharts extends React.PureComponent {
/>
{t('statistics:duration')}
+
+
+ {workout.min_alt && workout.max_alt && (
+
+
+ {t('workouts:Min. altitude')}: {workout.min_alt}m
+
+ {t('workouts:Max. altitude')}: {workout.max_alt}m
+
+
+ )}
+ {workout.ascent && workout.descent && (
+
+
+ {t('workouts:Ascent')}: {workout.ascent}m
+
+ {t('workouts:Descent')}: {workout.descent}m
+
+ )}
diff --git a/fittrackee_client/src/components/Workouts/WorkoutsList.jsx b/fittrackee_client/src/components/Workouts/WorkoutsList.jsx
index 771fb68f..745a1a47 100644
--- a/fittrackee_client/src/components/Workouts/WorkoutsList.jsx
+++ b/fittrackee_client/src/components/Workouts/WorkoutsList.jsx
@@ -21,6 +21,8 @@ export default class WorkoutsList extends React.PureComponent {
{t('workouts:Duration')} |
{t('workouts:Ave. speed')} |
{t('workouts:Max. speed')} |
+ {t('workouts:Ascent')} |
+ {t('workouts:Descent')} |
@@ -85,6 +87,18 @@ export default class WorkoutsList extends React.PureComponent {
{workout.max_speed} km/h
+
+
+ {t('workouts:Ascent')}
+
+ {workout.ascent} m
+ |
+
+
+ {t('workouts:Descent')}
+
+ {workout.descent} m
+ |
))}
diff --git a/fittrackee_client/src/locales/en/sports.json b/fittrackee_client/src/locales/en/sports.json
index b8e9bb78..59eb4974 100644
--- a/fittrackee_client/src/locales/en/sports.json
+++ b/fittrackee_client/src/locales/en/sports.json
@@ -3,6 +3,11 @@
"Cycling (Transport)": "Cycling (Transport)",
"Hiking": "Hiking",
"Mountain Biking": "Mountain Biking",
+ "Mountain Biking (Electric)": "Mountain Biking (Electric)",
"Running": "Running",
- "Walking": "Walking"
+ "Walking": "Walking",
+ "Trail" : "Trail",
+ "Skiing (Alpine)" : "Skiing (Alpine)",
+ "Skiing (Cross Country)" : "Skiing (Cross Country)",
+ "Rowing" : "Rowing"
}
diff --git a/fittrackee_client/src/locales/en/statistics.json b/fittrackee_client/src/locales/en/statistics.json
index 04bb7011..1ef9b420 100644
--- a/fittrackee_client/src/locales/en/statistics.json
+++ b/fittrackee_client/src/locales/en/statistics.json
@@ -2,6 +2,8 @@
"workouts": "workouts",
"distance": "distance",
"duration": "duration",
+ "ascent": "ascent",
+ "descent": "descent",
"month": "month",
"Statistics": "Statistics",
"year": "year",
diff --git a/fittrackee_client/src/locales/fr/sports.json b/fittrackee_client/src/locales/fr/sports.json
index 3cc6591a..e2d7828c 100644
--- a/fittrackee_client/src/locales/fr/sports.json
+++ b/fittrackee_client/src/locales/fr/sports.json
@@ -3,6 +3,11 @@
"Cycling (Transport)": "Vélo (Transport)",
"Hiking": "Randonnée",
"Mountain Biking": "VTT",
+ "Mountain Biking (Electric)": "VTT (Electrique)",
"Running": "Course",
- "Walking": "Marche"
+ "Walking": "Marche",
+ "Trail" : "Trail",
+ "Skiing (Alpine)" : "Ski (Alpin)",
+ "Skiing (Cross Country)" : "Ski (Randonnée)",
+ "Rowing" : "Aviron"
}
diff --git a/fittrackee_client/src/locales/fr/statistics.json b/fittrackee_client/src/locales/fr/statistics.json
index 28178e12..7a90dfc0 100644
--- a/fittrackee_client/src/locales/fr/statistics.json
+++ b/fittrackee_client/src/locales/fr/statistics.json
@@ -2,6 +2,8 @@
"workouts": "séances",
"distance": "distance",
"duration": "durée",
+ "ascent": "dénivelé+",
+ "descent": "dénivelé-",
"month": "mois",
"Statistics": "Statistiques",
"year": "année",
diff --git a/fittrackee_client/src/locales/fr/workouts.json b/fittrackee_client/src/locales/fr/workouts.json
index 782a4073..ae510bb9 100644
--- a/fittrackee_client/src/locales/fr/workouts.json
+++ b/fittrackee_client/src/locales/fr/workouts.json
@@ -5,13 +5,13 @@
"Add a workout": "Ajouter une séance",
"Are you sure you want to delete this workout?": "Etes-vous sûr de vouloir supprimer cette séance ?",
"Ave. speed": "Vitesse moyenne",
- "Ascent": "Dénivelé positif",
+ "Ascent": "Dénivelé +",
"Average speed": "Vitesse moyenne",
"Chart": "Analyse",
"data from gpx, without any cleaning": "données issues du fichier gpx, sans correction",
"Date": "Date",
"Delete workout": "Supprimer l'séance",
- "Descent": "Dénivelé négatif",
+ "Descent": "Dénivelé -",
"Distance": "Distance",
"distance": "distance",
"Duration": "Durée",
diff --git a/fittrackee_client/src/utils/stats.js b/fittrackee_client/src/utils/stats.js
index 57fd83a8..441fd5ea 100644
--- a/fittrackee_client/src/utils/stats.js
+++ b/fittrackee_client/src/utils/stats.js
@@ -39,6 +39,10 @@ export const formatValue = (displayedData, value) =>
? `${value.toFixed(2)} km`
: displayedData === 'duration'
? formatDuration(value)
+ : displayedData === 'ascent'
+ ? `${value.toFixed(2)} km`
+ : displayedData === 'descent'
+ ? `${value.toFixed(2)} km`
: value
const dateIncrement = (duration, day) => {
@@ -69,6 +73,8 @@ export const formatStats = (stats, sports, params, displayedSports, weekm) => {
const nbWorkoutsStats = []
const distanceStats = []
const durationStats = []
+ const ascentStats = []
+ const descentStats = []
for (
let day = startDate(params.duration, params.start, weekm);
@@ -83,6 +89,8 @@ export const formatStats = (stats, sports, params, displayedSports, weekm) => {
const dataNbWorkouts = { date: xAxis }
const dataDistance = { date: xAxis }
const dataDuration = { date: xAxis }
+ const dataAscent = { date: xAxis }
+ const dataDescent = { date: xAxis }
if (stats[date]) {
Object.keys(stats[date])
@@ -94,17 +102,23 @@ export const formatStats = (stats, sports, params, displayedSports, weekm) => {
dataNbWorkouts[sportLabel] = stats[date][sportId].nb_workouts
dataDistance[sportLabel] = stats[date][sportId].total_distance
dataDuration[sportLabel] = stats[date][sportId].total_duration
+ dataAscent[sportLabel] = stats[date][sportId].total_ascent
+ dataDescent[sportLabel] = stats[date][sportId].total_descent
return null
})
}
nbWorkoutsStats.push(dataNbWorkouts)
distanceStats.push(dataDistance)
durationStats.push(dataDuration)
+ ascentStats.push(dataAscent)
+ descentStats.push(dataDescent)
}
return {
workouts: nbWorkoutsStats,
distance: distanceStats,
duration: durationStats,
+ ascent: ascentStats,
+ descent: descentStats,
}
}
diff --git a/fittrackee_client/src/utils/workouts.js b/fittrackee_client/src/utils/workouts.js
index f9a977bf..9bbdc551 100644
--- a/fittrackee_client/src/utils/workouts.js
+++ b/fittrackee_client/src/utils/workouts.js
@@ -4,13 +4,17 @@ import togeojson from '@mapbox/togeojson'
import { getDateWithTZ } from './index'
export const workoutColors = [
- '#55a8a3',
- '#98C3A9',
- '#D0838A',
- '#ECC77E',
- '#926692',
- '#929292',
- '#428bca',
+ '#F94144',
+ '#F3722C',
+ '#F8961E',
+ '#F9844A',
+ '#F9C74F',
+ '#90BE6D',
+ '#43AA8B',
+ '#4D908E',
+ '#577590',
+ '#277DA1',
+ '#272DA1',
]
export const recordsLabels = [
From 6b044a31ed640ad8011e17e1eeb0dde74a2a84c3 Mon Sep 17 00:00:00 2001
From: Sam
Date: Wed, 1 Sep 2021 11:19:11 +0200
Subject: [PATCH 03/15] API - lint fix
---
fittrackee/database_utils.py | 4 ++--
fittrackee/workouts/stats.py | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/fittrackee/database_utils.py b/fittrackee/database_utils.py
index 7570a26b..d84c3d77 100644
--- a/fittrackee/database_utils.py
+++ b/fittrackee/database_utils.py
@@ -44,7 +44,7 @@ def init_database(app: Flask) -> None:
sport = Sport(label='Trail')
sport.img = '/img/sports/trail.png'
sport.is_default = True
- db.session.add(sport)
+ db.session.add(sport)
sport = Sport(label='Walking')
sport.img = '/img/sports/walking.png'
sport.is_default = True
@@ -56,7 +56,7 @@ def init_database(app: Flask) -> None:
sport = Sport(label='Skiing (Cross Country)')
sport.img = '/img/sports/cross-country-skiing.png'
sport.is_default = True
- db.session.add(sport)
+ db.session.add(sport)
sport = Sport(label='Rowing')
sport.img = '/img/sports/rowing.png'
sport.is_default = True
diff --git a/fittrackee/workouts/stats.py b/fittrackee/workouts/stats.py
index de9a97a5..5ca9a23e 100644
--- a/fittrackee/workouts/stats.py
+++ b/fittrackee/workouts/stats.py
@@ -129,7 +129,7 @@ def get_workouts(
] += float(workout.distance)
workouts_list_by_time[time_period][sport_id][
'total_duration'
- ] += convert_timedelta_to_integer(workout.moving)
+ ] += convert_timedelta_to_integer(workout.moving)
if workout.ascent:
workouts_list_by_time[time_period][sport_id][
'total_ascent'
From 69467d8a6b1a6835c1d81448290a191c78effba2 Mon Sep 17 00:00:00 2001
From: Sam
Date: Wed, 1 Sep 2021 11:21:00 +0200
Subject: [PATCH 04/15] Client - add missing sport images
---
.../public/img/sports/alpine-skiing.png | Bin 4406 -> 9899 bytes
.../img/sports/cross-country-skiing.png | Bin 4406 -> 6610 bytes
.../img/sports/electric-mountain-biking.png | Bin 4406 -> 16475 bytes
.../public/img/sports/rowing.png | Bin 0 -> 7245 bytes
fittrackee_client/public/img/sports/trail.png | Bin 3104 -> 8271 bytes
5 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 fittrackee_client/public/img/sports/rowing.png
diff --git a/fittrackee_client/public/img/sports/alpine-skiing.png b/fittrackee_client/public/img/sports/alpine-skiing.png
index 9b26acfc13e66f22270edd0a270966e76b5fbabd..6372a9d36b4ea4ebc23892915fb6eec5dc873b00 100644
GIT binary patch
delta 9874
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
delta 4324
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
R4+8@OgQu&X%Q~loCIAd2-(Ua$
delta 4338
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
FngAfgFzf&T
diff --git a/fittrackee_client/public/img/sports/electric-mountain-biking.png b/fittrackee_client/public/img/sports/electric-mountain-biking.png
index 9b26acfc13e66f22270edd0a270966e76b5fbabd..691db7a4d606091a5768d23a46dbebd2152de7b4 100644
GIT binary patch
literal 16475
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