diff --git a/fittrackee/database_utils.py b/fittrackee/database_utils.py index 6cda50662..7570a26bf 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/workouts/stats.py b/fittrackee/workouts/stats.py index 80de9480b..de9a97a51 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/public/img/sports/alpine-skiing.png b/fittrackee_client/public/img/sports/alpine-skiing.png new file mode 100644 index 000000000..9b26acfc1 Binary files /dev/null and b/fittrackee_client/public/img/sports/alpine-skiing.png differ 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 000000000..9b26acfc1 Binary files /dev/null and b/fittrackee_client/public/img/sports/cross-country-skiing.png differ 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 000000000..9b26acfc1 Binary files /dev/null and b/fittrackee_client/public/img/sports/electric-mountain-biking.png differ diff --git a/fittrackee_client/public/img/sports/trail.png b/fittrackee_client/public/img/sports/trail.png new file mode 100644 index 000000000..fe4a2814f Binary files /dev/null and b/fittrackee_client/public/img/sports/trail.png differ diff --git a/fittrackee_client/src/components/Common/Stats/StatsChart.jsx b/fittrackee_client/src/components/Common/Stats/StatsChart.jsx index ca3678f16..1862b0d5f 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')} + +