On dashboard display list of sets in descending order (start_date) with E1RM
This commit is contained in:
36
utils.py
36
utils.py
@@ -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)}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user