summaryrefslogtreecommitdiff
path: root/app/routes.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/routes.py')
-rw-r--r--app/routes.py36
1 files changed, 34 insertions, 2 deletions
diff --git a/app/routes.py b/app/routes.py
index 36fb0ba..1ff1023 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -1,5 +1,5 @@
from app import app, db
-from flask import render_template, redirect, url_for, flash
+from flask import render_template, redirect, request, url_for, flash
from flask_login import current_user, login_user, login_required, logout_user
from forms import LoginForm, RegisterForm, WorkoutCreateForm
from tables import User, Workout
@@ -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,35 @@ def createWorkout():
flash("Workout with this name already exists", "danger")
return render_template('workout/create.html', form=form)
+
+@app.route("/workout/edit", methods=['GET', 'POST'])
+@login_required
+def editWorkout():
+ # Id is required
+ if 'id' not in request.args:
+ return redirect(url_for('home'))
+
+ # Validate Id
+ workout = Workout.query.filter_by(id=int(request.args['id']), user_id=current_user.id).first()
+ if not workout:
+ return redirect(url_for('home'))
+
+ form = WorkoutCreateForm()
+
+ if form.validate_on_submit():
+ # Form has been submitted, write changes
+
+ workout.name = form.name.data
+ # TODO: Add exercise changes
+
+ # Write changes to database
+ db.session.commit()
+ return redirect(url_for('home'));
+ else:
+ form.name.data = workout.name
+ form.exercises.pop_entry() # TODO: better way to do this?
+
+ for exercise in workout.exercises:
+ form.exercises.append_entry(exercise)
+
+ return render_template('workout/create.html', form=form)