From ed1823168fb6f3256bcd7397b4d4de462a3f1781 Mon Sep 17 00:00:00 2001 From: stilbruch Date: Wed, 6 Apr 2022 14:17:40 -0500 Subject: Exercises are now properly stored in the database --- app/routes.py | 7 +++- app/tables/workout.py | 22 ++++++++++- app/templates/home.html | 78 +++++++++++++-------------------------- app/templates/workout/manage.html | 6 +++ 4 files changed, 57 insertions(+), 56 deletions(-) create mode 100644 app/templates/workout/manage.html (limited to 'app') diff --git a/app/routes.py b/app/routes.py index 36fb0ba..8a2346a 100644 --- a/app/routes.py +++ b/app/routes.py @@ -70,7 +70,7 @@ def createWorkout(): workout = Workout.query.filter_by(user_id=current_user.id, name=name).first() if not workout: # TODO: add exercises - workout = Workout(current_user, name, None) + workout = Workout(current_user, name, [e.data for e in form.exercises.entries]) db.session.add(workout) db.session.commit() @@ -79,3 +79,8 @@ def createWorkout(): flash("Workout with this name already exists", "danger") return render_template('workout/create.html', form=form) + +@app.route("/workout/manage", methods=['GET']) +@login_required +def manageWorkout(): + return render_template('workout/manage.html') diff --git a/app/tables/workout.py b/app/tables/workout.py index 81f9a68..b86a3db 100644 --- a/app/tables/workout.py +++ b/app/tables/workout.py @@ -4,20 +4,38 @@ from app import db, login_manager class Exercise(db.Model): __tablename__ = 'exercises' id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(100), nullable=False) + sets = db.Column(db.Integer) + reps = db.Column(db.Integer) + # Workout Relationship + workout_id = db.Column(db.Integer, db.ForeignKey('workouts.id')) + + def __init__(self, name, sets, reps): + self.name = name + self.sets = sets + self.reps = reps + + def __repr__(self): + return f'' # Represents a singular workout class Workout(db.Model): __tablename__ = 'workouts' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) - - # User Relationship + # foreign keys user_id = db.Column(db.Integer, db.ForeignKey('users.id')) + # relationships + exercises = db.relationship("Exercise", backref='workout', lazy='dynamic') def __init__(self, user, name, exercises): self.name = name self.user_id = user.id + # Create exercises + for exercise in exercises: + self.exercises.append(Exercise(exercise['name'], exercise['sets'], exercise['reps'])) + def __repr__(self): return f'' diff --git a/app/templates/home.html b/app/templates/home.html index fb47a68..693e03b 100644 --- a/app/templates/home.html +++ b/app/templates/home.html @@ -10,7 +10,7 @@ Hello, {{ current_user.username }}.

- %subtitle% + Welcome Back

@@ -45,6 +45,30 @@
+
+
+
+

+ My Workouts +

+
+
+
+ + + {% for workout in current_user.workouts %} + + + + + + {% endfor %} + +
{{ workout.name }}{{ workout.exercises.count() }} exercisesEdit
+
+
+
+
@@ -80,58 +104,6 @@
-
-
-
-

- Inventory Search -

- - - - - -
-
-
-
- - - - - - - -
-
-
-
-
-
-

- User Search -

- - - - - -
-
-
-
- - - - - - - -
-
-
-
-
diff --git a/app/templates/workout/manage.html b/app/templates/workout/manage.html new file mode 100644 index 0000000..95f03f5 --- /dev/null +++ b/app/templates/workout/manage.html @@ -0,0 +1,6 @@ +{% extends 'base/layout.html' %} + +{% block content %} +
+
+{% endblock %} -- cgit v1.2.3