diff --git a/app.py b/app.py index 5ba55cd..47ab2f0 100644 --- a/app.py +++ b/app.py @@ -33,7 +33,20 @@ def get_person_list(): @ app.route("/person/") @ validate_person def get_person(person_id): + selected_exercise_ids = [int(i) + for i in request.args.getlist('exercise_id')] person = db.get_person(person_id) + + if selected_exercise_ids: + filtered_exercises = filter( + lambda e: e['ExerciseId'] in selected_exercise_ids, person['Exercises']) + person['FilteredExercises'] = list(filtered_exercises) + if htmx: + return render_template('partials/page/person.html', + person=person, is_filtered=True, selected_exercise_ids=selected_exercise_ids), 200, {"HX-Trigger": "updatedPeople"} + + return render_template('person.html', person=person, is_filtered=True, selected_exercise_ids=selected_exercise_ids) + if htmx: return render_template('partials/page/person.html', person=person, is_filtered=False), 200, {"HX-Trigger": "updatedPeople"} @@ -41,18 +54,6 @@ def get_person(person_id): return render_template('person.html', person=person) -@ app.route("/person//exercise_filter", methods=['POST']) -@ validate_person -def filter_exercises_for_person(person_id): - selected_exercise_ids = [int(i) - for i in request.form.getlist('exercise_id')] - person = db.get_person(person_id) - filtered_exercises = filter( - lambda e: e['ExerciseId'] in selected_exercise_ids, person['Exercises']) - person['FilteredExercises'] = list(filtered_exercises) - return render_template('partials/page/person.html', person=person, is_filtered=True, selected_exercise_ids=selected_exercise_ids) - - @ app.route("/person//workout", methods=['POST']) @ validate_person def create_workout(person_id): diff --git a/templates/partials/page/person.html b/templates/partials/page/person.html index 9f4cbcd..354cbc8 100644 --- a/templates/partials/page/person.html +++ b/templates/partials/page/person.html @@ -18,9 +18,8 @@ {% set exercise_list = person['FilteredExercises'] if is_filtered else person['Exercises'] %} {% for e in person['Exercises'] %} -
+
diff --git a/templates/person.html b/templates/person.html index dac7e14..a15fb9b 100644 --- a/templates/person.html +++ b/templates/person.html @@ -3,6 +3,6 @@ {% block content %} {{ render_partial('partials/page/person.html', -person=person, is_filtered=False) }} +person=person, is_filtered=is_filtered or False, selected_exercise_ids=selected_exercise_ids) }} {% endblock %} \ No newline at end of file