From 11ca7472f0736ed7f7cc4447f8fa59cd8765eb2f Mon Sep 17 00:00:00 2001 From: stilbruch Date: Sat, 30 Apr 2022 12:56:15 -0500 Subject: Start workout history page --- TODO | 1 - app/routes/workout.py | 16 ++++++++++++++++ app/tables/user.py | 1 + app/tables/workout.py | 3 +++ app/templates/home.html | 12 ++++++------ app/templates/workout/history.html | 32 ++++++++++++++++++++++++++++++++ 6 files changed, 58 insertions(+), 7 deletions(-) delete mode 100644 TODO create mode 100644 app/templates/workout/history.html diff --git a/TODO b/TODO deleted file mode 100644 index f81209d..0000000 --- a/TODO +++ /dev/null @@ -1 +0,0 @@ -Add fa icons to base diff --git a/app/routes/workout.py b/app/routes/workout.py index 996105c..9b46694 100644 --- a/app/routes/workout.py +++ b/app/routes/workout.py @@ -145,3 +145,19 @@ def workout_record(): @login_required def workout_select(): return render_template("workout/select.html") + + +@app.route("/workout/history", methods=["GET"]) +@login_required +def workout_history(): + if "id" not in request.args: + return redirect(url_for("home")) + + # Matching workout record required + record = WorkoutRecord.query.filter_by( + id=int(request.args["id"]), user_id=current_user.id + ).first() + if not record: + return redirect(url_for("home")) + + return render_template("workout/history.html", record=record) diff --git a/app/tables/user.py b/app/tables/user.py index 483e56f..00457e6 100644 --- a/app/tables/user.py +++ b/app/tables/user.py @@ -19,6 +19,7 @@ class User(db.Model, UserMixin): # relationships workouts = db.relationship("Workout", backref="user", lazy="dynamic") + records = db.relationship("WorkoutRecord", backref="user", lazy="dynamic") def __init__(self, username, password, email): self.username = username diff --git a/app/tables/workout.py b/app/tables/workout.py index cc8478e..bdb200e 100644 --- a/app/tables/workout.py +++ b/app/tables/workout.py @@ -1,4 +1,5 @@ from app import db, login_manager +from flask_login import current_user import enum @@ -84,6 +85,7 @@ class WorkoutRecord(db.Model): finished = db.Column(db.DateTime) # foreign keys + user_id = db.Column(db.Integer, db.ForeignKey("users.id")) workout_id = db.Column(db.Integer, db.ForeignKey("workouts.id")) # relationships @@ -92,3 +94,4 @@ class WorkoutRecord(db.Model): def __init__(self, workout, finished): self.workout = workout self.finished = finished + self.user = current_user diff --git a/app/templates/home.html b/app/templates/home.html index 796b44b..235e6e7 100644 --- a/app/templates/home.html +++ b/app/templates/home.html @@ -19,20 +19,20 @@
-

0

-

Sets Completed

+

{{ current_user.workouts.count() }}

+

Workouts

-

0

+

{{ records.count() }}

Workouts Completed

-

{{ current_user.workouts.count() }}

-

Workouts

+

0

+

Sets Completed