From c702a2ba3d94c43367e83c1f88889c7ff18a3101 Mon Sep 17 00:00:00 2001 From: Peter Stockings Date: Sat, 9 Dec 2023 17:00:45 +1100 Subject: [PATCH] Refactor get workout call --- app.py | 12 ++++----- db.py | 34 +++++++++++------------- templates/partials/workout_modal.html | 38 +++++++++++++-------------- 3 files changed, 41 insertions(+), 43 deletions(-) diff --git a/app.py b/app.py index 67d586a..61eb5d4 100644 --- a/app.py +++ b/app.py @@ -141,7 +141,7 @@ def get_workout_modal(person_id, workout_id): (person_tags, workout_tags, selected_workout_tag_ids) = db.get_workout_tags( person_id, workout_id) exercises = db.get_all_exercises() - return render_template('partials/workout_modal.html', workout=workout, person_tags=person_tags, workout_tags=workout_tags, selected_workout_tag_ids=selected_workout_tag_ids, exercises=exercises) + return render_template('partials/workout_modal.html', **workout, person_tags=person_tags, workout_tags=workout_tags, selected_workout_tag_ids=selected_workout_tag_ids, exercises=exercises) @ app.route("/person//workout", methods=['POST']) @@ -153,7 +153,7 @@ def create_workout(person_id): person_id, new_workout_id) exercises = db.get_all_exercises() return render_template('partials/workout_modal.html', - workout=workout, person_tags=person_tags, workout_tags=workout_tags, selected_workout_tag_ids=selected_workout_tag_ids, exercises=exercises), 200, {"HX-Trigger": "updatedPeople"} + **workout, person_tags=person_tags, workout_tags=workout_tags, selected_workout_tag_ids=selected_workout_tag_ids, exercises=exercises), 200, {"HX-Trigger": "updatedPeople"} @ app.route("/person//workout//delete", methods=['DELETE']) @@ -167,7 +167,7 @@ def delete_workout(person_id, workout_id): @ validate_workout def get_workout_start_date_edit_form(person_id, workout_id): workout = db.get_workout(person_id, workout_id) - return render_template('partials/start_date.html', person_id=person_id, workout_id=workout_id, start_date=workout['StartDate'], is_edit=True) + return render_template('partials/start_date.html', person_id=person_id, workout_id=workout_id, start_date=workout['start_date'], is_edit=True) @ app.route("/person//workout//start_date", methods=['PUT']) @@ -182,7 +182,7 @@ def update_workout_start_date(person_id, workout_id): @ validate_workout def get_workout_start_date(person_id, workout_id): workout = db.get_workout(person_id, workout_id) - return render_template('partials/start_date.html', person_id=person_id, workout_id=workout_id, start_date=workout['StartDate']) + return render_template('partials/start_date.html', person_id=person_id, workout_id=workout_id, start_date=workout['start_date']) @ app.route("/person//workout//topset/", methods=['GET']) @@ -343,7 +343,7 @@ def delete_tag(tag_id): @ validate_workout def get_workout_note_edit_form(person_id, workout_id): workout = db.get_workout(person_id, workout_id) - return render_template('partials/workout_note.html', person_id=person_id, workout_id=workout_id, note=workout['Note'], is_edit=True) + return render_template('partials/workout_note.html', person_id=person_id, workout_id=workout_id, note=workout['note'], is_edit=True) @ app.route("/person//workout//note", methods=['PUT']) @@ -358,7 +358,7 @@ def update_workout_note(person_id, workout_id): @ validate_workout def get_workout_note(person_id, workout_id): workout = db.get_workout(person_id, workout_id) - return render_template('partials/workout_note.html', person_id=person_id, workout_id=workout_id, note=workout['Note']) + return render_template('partials/workout_note.html', person_id=person_id, workout_id=workout_id, note=workout['note']) @ app.route("/person//workout//tag/add", methods=['POST']) diff --git a/db.py b/db.py index d08e0a1..e6420b1 100644 --- a/db.py +++ b/db.py @@ -198,16 +198,16 @@ class DataBase(): def get_workout(self, person_id, workout_id): topsets = self.execute(""" SELECT - P.person_id AS "PersonId", - P.name AS "PersonName", - W.workout_id AS "WorkoutId", - W.start_date AS "StartDate", - T.topset_id AS "TopSetId", - E.exercise_id AS "ExerciseId", - E.name AS "ExerciseName", - T.repetitions AS "Repetitions", - T.weight AS "Weight", - W.note AS "Note" + P.person_id, + P.name AS "person_name", + W.workout_id, + W.start_date, + T.topset_id, + E.exercise_id, + E.name AS "exercise_name", + T.repetitions, + T.weight, + W.note FROM Person P LEFT JOIN Workout W ON P.person_id=W.person_id LEFT JOIN TopSet T ON W.workout_id=T.workout_id @@ -216,15 +216,13 @@ class DataBase(): AND W.workout_id = %s ORDER BY T.topset_id""", [person_id, workout_id]) - note = next((t['Note'] for t in topsets), '') - return { - 'PersonId': person_id, - 'PersonName': next((t['PersonName'] for t in topsets), 'Unknown'), - 'WorkoutId': workout_id, - 'StartDate': topsets[0]['StartDate'], - 'TopSets': [{"TopSetId": t['TopSetId'], "ExerciseId": t['ExerciseId'], "ExerciseName": t['ExerciseName'], "Weight": t['Weight'], "Repetitions": t['Repetitions']} for t in topsets if t['TopSetId'] is not None], - 'Note': note + 'person_id': person_id, + 'person_name': topsets[0]['person_name'], + 'workout_id': workout_id, + 'start_date': topsets[0]['start_date'], + 'top_sets': [{"topset_id": t['topset_id'], "exercise_id": t['exercise_id'], "exercise_name": t['exercise_name'], "weight": t['weight'], "repetitions": t['repetitions']} for t in topsets if t['topset_id'] is not None], + 'note': topsets[0]['note'] } def get_topset(self, topset_id): diff --git a/templates/partials/workout_modal.html b/templates/partials/workout_modal.html index 9fc668c..eded9fb 100644 --- a/templates/partials/workout_modal.html +++ b/templates/partials/workout_modal.html @@ -19,10 +19,10 @@
-

{{ workout['PersonName'] }}

+

{{ person_name }}

- {{ render_partial('partials/workout_tags.html', person_id=workout['PersonId'], - workout_id=workout['WorkoutId'], + {{ render_partial('partials/workout_tags.html', person_id=person_id, + workout_id=workout_id, person_tags=person_tags, workout_tags=workout_tags, selected_workout_tag_ids=selected_workout_tag_ids) }} @@ -30,14 +30,14 @@
- {{ render_partial('partials/start_date.html', person_id=workout['PersonId'], - workout_id=workout['WorkoutId'], - start_date=workout['StartDate']) }} + {{ render_partial('partials/start_date.html', person_id=person_id, + workout_id=workout_id, + start_date=start_date) }} - {{ render_partial('partials/workout_note.html', person_id=workout['PersonId'], - workout_id=workout['WorkoutId'], - note=workout['Note']) }} + {{ render_partial('partials/workout_note.html', person_id=person_id, + workout_id=workout_id, + note=note) }}
@@ -76,17 +76,17 @@ - {% for t in workout['TopSets'] %} - {{ render_partial('partials/topset.html', person_id=workout['PersonId'], - workout_id=workout['WorkoutId'], - topset_id=t['TopSetId'], exercise_id=t['ExerciseId'] ,exercise_name=t['ExerciseName'], - repetitions=t['Repetitions'], - weight=t['Weight']) }} + {% for topset in top_sets %} + {{ render_partial('partials/topset.html', person_id=person_id, + workout_id=workout_id, + topset_id=topset.topset_id, exercise_id=topset.exercise_id, exercise_name=topset.exercise_name, + repetitions=topset.repetitions, + weight=topset.weight) }} {% endfor %} - {% if workout['TopSets']|length == 0 %} + {% if top_sets|length == 0 %}
- {{ render_partial('partials/new_set_form.html', person_id=workout['PersonId'], - workout_id=workout['WorkoutId'], + {{ render_partial('partials/new_set_form.html', person_id=person_id, + workout_id=workout_id, exercises=exercises, has_value=False) }}
-
+