Reorganize workout view for desktop and compact session details

This commit is contained in:
Peter Stockings
2026-09-06 17:10:06 +10:00
parent 1aa5d7418b
commit d5e3e1d930
9 changed files with 345 additions and 183 deletions
+16 -3
View File
@@ -199,6 +199,19 @@ def get_workout_distribution(person_id, workout_id):
distribution=distribution,
category_name=category)
@workout_bp.route("/person/<int:person_id>/workout/<int:workout_id>/summary", methods=['GET'])
@login_required
@validate_workout
@require_ownership
def get_workout_summary(person_id, workout_id):
top_sets = db.execute(
"SELECT exercise_id, repetitions FROM topset WHERE workout_id = %s",
[workout_id],
)
return render_template('partials/workout_summary.html', person_id=person_id,
workout_id=workout_id, top_sets=top_sets)
@workout_bp.route("/person/<int:person_id>/workout/<int:workout_id>/topset/<int:topset_id>/achievements", methods=['GET'])
@validate_topset
def get_topset_achievements(person_id, workout_id, topset_id):
@@ -209,7 +222,7 @@ def get_topset_achievements(person_id, workout_id, topset_id):
@validate_topset
def get_topset(person_id, workout_id, topset_id):
topset = db.get_topset(topset_id) # Keep using db.py for simple gets for now
return render_template('partials/topset.html', person_id=person_id, workout_id=workout_id, topset_id=topset_id, exercise_id=topset.get('exercise_id'), exercise_name=topset.get('exercise_name'), repetitions=topset.get('repetitions'), weight=topset.get('weight'))
return render_template('partials/topset.html', person_id=person_id, workout_id=workout_id, topset_id=topset_id, exercise_id=topset.get('exercise_id'), exercise_name=topset.get('exercise_name'), repetitions=topset.get('repetitions'), weight=topset.get('weight'), existing_row=True)
@workout_bp.route("/person/<int:person_id>/workout/<int:workout_id>/topset/<int:topset_id>/edit_form", methods=['GET'])
@login_required
@@ -273,7 +286,7 @@ def update_topset(person_id, workout_id, topset_id):
db.update_topset(exercise_id, repetitions, weight, topset_id)
exercise = db.get_exercise(exercise_id)
db.activityRequest.log(current_user.id, 'UPDATE_SET', 'topset', topset_id, f"Updated set {topset_id}: {repetitions} x {weight}kg {exercise['name']}")
return render_template('partials/topset.html', person_id=person_id, workout_id=workout_id, topset_id=topset_id, exercise_id=exercise_id, exercise_name=exercise.get('name'), repetitions=repetitions, weight=weight)
return render_template('partials/topset.html', person_id=person_id, workout_id=workout_id, topset_id=topset_id, exercise_id=exercise_id, exercise_name=exercise.get('name'), repetitions=repetitions, weight=weight, existing_row=True), 200, {"HX-Trigger": "topsetChanged"}
@workout_bp.route("/person/<int:person_id>/workout/<int:workout_id>/topset/<int:topset_id>/delete", methods=['DELETE'])
@login_required
@@ -283,7 +296,7 @@ def delete_topset(person_id, workout_id, topset_id):
topset = db.get_topset(topset_id)
db.delete_topset(topset_id)
db.activityRequest.log(current_user.id, 'DELETE_SET', 'topset', topset_id, f"Deleted set {topset_id}: {topset['exercise_name']} in workout {workout_id}")
return ""
return f'<tr id="extra-target-{topset_id}" hx-swap-oob="delete"></tr>', 200, {"HX-Trigger": "topsetChanged"}
@workout_bp.route("/person/<int:person_id>/workout/<int:workout_id>/exercise/most_recent_topset_for_exercise", methods=['GET'])
def get_most_recent_topset_for_exercise(person_id, workout_id):