Remove unused duplicated stats logic for dashboard
This commit is contained in:
3
db.py
3
db.py
@@ -13,7 +13,7 @@ from features.person_overview import PersonOverview
|
|||||||
from features.stats import Stats
|
from features.stats import Stats
|
||||||
from features.workout import Workout
|
from features.workout import Workout
|
||||||
from features.sql_explorer import SQLExplorer
|
from features.sql_explorer import SQLExplorer
|
||||||
from utils import count_prs_over_time, get_all_exercises_from_topsets, get_exercise_graph_model, get_stats_from_topsets, get_topsets_for_person, get_weekly_pr_graph_model, get_workout_counts, get_workouts
|
from utils import count_prs_over_time, get_all_exercises_from_topsets, get_exercise_graph_model, get_topsets_for_person, get_weekly_pr_graph_model, get_workout_counts, get_workouts
|
||||||
|
|
||||||
|
|
||||||
class DataBase():
|
class DataBase():
|
||||||
@@ -214,7 +214,6 @@ class DataBase():
|
|||||||
return {
|
return {
|
||||||
'PersonId': next((t['PersonId'] for t in topsets), -1),
|
'PersonId': next((t['PersonId'] for t in topsets), -1),
|
||||||
'PersonName': next((t['PersonName'] for t in topsets), 'Unknown'),
|
'PersonName': next((t['PersonName'] for t in topsets), 'Unknown'),
|
||||||
'Stats': get_stats_from_topsets(topsets),
|
|
||||||
'Exercises': get_all_exercises_from_topsets(topsets),
|
'Exercises': get_all_exercises_from_topsets(topsets),
|
||||||
'Workouts': get_workouts(topsets),
|
'Workouts': get_workouts(topsets),
|
||||||
'ExerciseProgressGraphs': get_topsets_for_person(topsets),
|
'ExerciseProgressGraphs': get_topsets_for_person(topsets),
|
||||||
|
|||||||
51
utils.py
51
utils.py
@@ -115,56 +115,7 @@ def get_people_and_exercise_rep_maxes(topsets, selected_person_ids, selected_exe
|
|||||||
'Exercises': get_topsets_for_person(person_topsets)
|
'Exercises': get_topsets_for_person(person_topsets)
|
||||||
})
|
})
|
||||||
|
|
||||||
return {"People": people, "Stats": get_stats_from_topsets(topsets)}
|
return {"People": people}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
def convert_str_to_date(date_str, format='%Y-%m-%d'):
|
def convert_str_to_date(date_str, format='%Y-%m-%d'):
|
||||||
|
|||||||
Reference in New Issue
Block a user