On dashboard display list of sets in descending order (start_date) with E1RM

This commit is contained in:
Peter Stockings
2023-12-09 20:19:24 +11:00
parent fd6ca240ee
commit f9b3854544
3 changed files with 25 additions and 36 deletions

View File

@@ -34,38 +34,24 @@ def get_all_exercises_from_topsets(topsets):
})
return exercises
def get_rep_maxes_for_person(person_topsets):
def get_topsets_for_person(person_topsets):
person_exercises = get_all_exercises_from_topsets(person_topsets)
rep_maxes_in_exercises = []
exercises_topsets = []
for e in person_exercises:
exercise_topsets = [
t for t in person_topsets if t['ExerciseId'] == e['ExerciseId']]
set_reps = set([t['Repetitions'] for t in exercise_topsets])
exercise_topsets = [t for t in person_topsets if t['ExerciseId'] == e['ExerciseId']]
topsets_for_exercise = []
for rep in set_reps:
reps = [t for t in exercise_topsets if t['Repetitions'] == rep]
max_weight = max([t['Weight'] for t in reps])
max_topset_for_rep = [t for t in reps if t['Weight'] == max_weight]
topsets_for_exercise.append({
'StartDate': max_topset_for_rep[0]['StartDate'].strftime("%b %d %Y"),
'Repetitions': rep,
'Weight': max_weight,
'Estimated1RM': max_topset_for_rep[0]['Estimated1RM'],
})
# Sort topsets by StartDate in descending order
sorted_topsets = sorted(exercise_topsets, key=lambda x: x['StartDate'], reverse=True)
# datetime.strptime(x['StartDate'], "%Y-%m-%d")
topsets_for_exercise.sort(
key=lambda x: x['Repetitions'], reverse=True)
rep_maxes_in_exercises.append({
exercises_topsets.append({
'ExerciseId': e['ExerciseId'],
'ExerciseName': e['ExerciseName'],
'RepMaxes': topsets_for_exercise
'Topsets': sorted_topsets
})
return rep_maxes_in_exercises
return exercises_topsets
def get_people_and_exercise_rep_maxes(topsets, selected_person_ids, selected_exercise_ids, min_date, max_date):
@@ -84,7 +70,7 @@ def get_people_and_exercise_rep_maxes(topsets, selected_person_ids, selected_exe
'PersonId': person_id,
'PersonName': workouts_for_person[0]['PersonName'],
'NumberOfWorkouts': len(list(set([t['WorkoutId'] for t in workouts_for_person if t['WorkoutId'] is not None]))),
'Exercises': get_rep_maxes_for_person(workouts_for_person)
'Exercises': get_topsets_for_person(workouts_for_person)
})
return {"People": people, "Stats": get_stats_from_topsets(topsets)}