Switch from using workout modal and change to workout page, still need to cleanup modal logic and templates. Need to fix workout tag functionality

This commit is contained in:
Peter Stockings
2024-11-04 22:02:06 +11:00
parent 1a970d1d7b
commit 10326ccd7a
8 changed files with 106 additions and 116 deletions

16
app.py
View File

@@ -158,22 +158,21 @@ def get_workout_modal(person_id, workout_id):
@ app.route("/person/<int:person_id>/workout", methods=['POST'])
@ validate_person
def create_workout(person_id):
new_workout_id = db.create_workout(person_id)
workout = db.get_workout(person_id, new_workout_id)
(person_tags, workout_tags, selected_workout_tag_ids) = db.get_workout_tags(
person_id, new_workout_id)
exercises = db.get_all_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), 200, {"HX-Trigger": "updatedPeople"}
view_model = db.workout.get(person_id, new_workout_id)
return render_block(app.jinja_env, 'workout.html', 'content', **view_model)
@ app.route("/person/<int:person_id>/workout/<int:workout_id>/delete", methods=['DELETE'])
@ app.route("/person/<int:person_id>/workout/<int:workout_id>/delete", methods=['GET'])
@ validate_workout
def delete_workout(person_id, workout_id):
db.delete_workout(workout_id)
return "", 200, {"HX-Trigger": "updatedPeople"}
return redirect(url_for('get_calendar', person_id=person_id))
#return "", 200, {"HX-Trigger": "updatedPeople", "HX-Push-Url": url_for('get_calendar', person_id=person_id)}
@ app.route("/person/<int:person_id>/workout/<int:workout_id>/start_date_edit_form", methods=['GET'])
@@ -436,13 +435,16 @@ def get_stats_for_person(person_id):
@ app.route("/person/<int:person_id>/workout/<int:workout_id>", methods=['GET'])
def show_workout(person_id, workout_id):
view_model = db.workout.get(person_id, workout_id)
if htmx:
return render_block(app.jinja_env, 'workout.html', 'content', **view_model)
return render_template('workout.html', **view_model)
@app.route("/exercises/get")
def get_exercises():
query = request.args.get('query')
person_id = request.args.get('person_id', type=int)
exercises = db.exercises.get(query)
return render_template('partials/exercise/exercise_dropdown.html', exercises=exercises)
return render_template('partials/exercise/exercise_dropdown.html', exercises=exercises, person_id=person_id)
@app.route("/exercise/<int:exercise_id>/edit_name", methods=['GET', 'POST'])
def edit_exercise_name(exercise_id):