diff options
Diffstat (limited to 'app/routes')
| -rw-r--r-- | app/routes/api.py | 33 | ||||
| -rw-r--r-- | app/routes/progress.py | 8 | ||||
| -rw-r--r-- | app/routes/workout.py | 1 |
3 files changed, 30 insertions, 12 deletions
diff --git a/app/routes/api.py b/app/routes/api.py index 6a95ca2..77ebdcf 100644 --- a/app/routes/api.py +++ b/app/routes/api.py @@ -1,7 +1,7 @@ from app import app, db from flask import redirect, request, jsonify from flask_login import current_user, login_required -from tables import Workout +from tables import Exercise, SetRecord, Workout, WorkoutRecord @app.route("/api/workout/delete", methods=["GET"]) @@ -20,11 +20,30 @@ def api_workout_delete(): return redirect("/home") -@app.route("/api/progress/exercise", methods=["GET"]) +@app.route("/api/progress/exercise/<exercise_id>", methods=["GET"]) @login_required -def api_progress_exercise(): - if "id" not in request.args: - return redirect("/home") +def api_progress_exercise(exercise_id=None): + # Get exercise from database NOTE: consider adding userid to exercise + exercise = ( + db.session.query(Exercise) + .filter_by(id=exercise_id) + .join(Workout, Workout.user_id == current_user.id) + .first() + ) + if not exercise: + return redirect(url_for("home")) + + results = ( + db.session.query(WorkoutRecord.id, db.func.max(SetRecord.lbs)) + # .join(SetRecord.workout_record_id == WorkoutRecord.id) + .filter( + SetRecord.exercise_id == exercise_id, + WorkoutRecord.user_id == current_user.id, + SetRecord.workout_record_id == WorkoutRecord.id, + ).group_by(WorkoutRecord.id) + ).all() + + print(results) - # FIXME - return jsonify() + # TODO doesnt work + return jsonify(results) diff --git a/app/routes/progress.py b/app/routes/progress.py index 8040fdc..7b451ed 100644 --- a/app/routes/progress.py +++ b/app/routes/progress.py @@ -7,12 +7,10 @@ from tables import Exercise, Workout @app.route("/progress/exercise/<exercise_id>") @login_required def progress_exercise(exercise_id=None): - # FIXME - exercise = ( - db.session.query(Workout, Exercise) - .filter(Exercise.id == exercise_id) - .filter(Workout.user_id == current_user.id) + db.session.query(Exercise) + .filter_by(id=exercise_id) + .join(Workout, Workout.user_id == current_user.id) .first() ) if not exercise: diff --git a/app/routes/workout.py b/app/routes/workout.py index 5eb18d9..8f58aa3 100644 --- a/app/routes/workout.py +++ b/app/routes/workout.py @@ -131,6 +131,7 @@ def workout_record(workout_id=None): return redirect(url_for("home")) else: + print(form.errors) # Populate form with data for exercise in workout.exercises: form.exercises.append_entry( |
