Remove unused duplicated stats logic for dashboard

This commit is contained in:
Peter Stockings
2025-01-27 00:18:02 +11:00
parent 5ed737ee94
commit 049af675cc
2 changed files with 2 additions and 52 deletions

View File

@@ -115,56 +115,7 @@ def get_people_and_exercise_rep_maxes(topsets, selected_person_ids, selected_exe
'Exercises': get_topsets_for_person(person_topsets)
})
return {"People": people, "Stats": get_stats_from_topsets(topsets)}
def get_stats_from_topsets(topsets):
workout_count = len(set([t['WorkoutId']
for t in topsets if t['WorkoutId'] is not None]))
people_count = len(set([t['PersonId']
for t in topsets if t['PersonId'] is not None]))
exercise_count = len(set([t['ExerciseId']
for t in topsets if t['ExerciseId'] is not None]))
workout_start_dates = [t['StartDate']
for t in topsets if t['StartDate'] is not None]
stats = [{"Text": "Total Workouts", "Value": workout_count},
{"Text": "Total Sets", "Value": len(topsets)},
{"Text": "Total Exercises", "Value": exercise_count}]
if people_count > 1:
stats.append({"Text": "People tracked", "Value": people_count})
if workout_count > 0:
first_workout_date = min(workout_start_dates)
last_workout_date = max(workout_start_dates)
stats.append({"Text": "Days Since First Workout", "Value": (
date.today() - first_workout_date).days})
if workout_count >= 2:
stats.append({"Text": "Days Since Last Workout",
"Value": (
date.today() - last_workout_date).days})
average_number_sets_per_workout = round(
len(topsets) / workout_count, 1)
stats.append({"Text": "Average sets per workout",
"Value": average_number_sets_per_workout})
# Average exercises per workout
average_exercises_per_workout = round(exercise_count / workout_count, 1)
stats.append({"Text": "Average Exercises Per Workout", "Value": average_exercises_per_workout})
training_duration = last_workout_date - first_workout_date
if training_duration > timedelta(days=0):
average_workouts_per_week = round(
workout_count / (training_duration.days / 7), 1)
stats.append({"Text": "Average Workouts Per Week",
"Value": average_workouts_per_week})
# Average sets per exercise
average_sets_per_exercise = round(len(topsets) / exercise_count, 1) if exercise_count > 0 else 0
stats.append({"Text": "Average Sets Per Exercise", "Value": average_sets_per_exercise})
return stats
return {"People": people}
def convert_str_to_date(date_str, format='%Y-%m-%d'):