summaryrefslogtreecommitdiff
path: root/app/routes
diff options
context:
space:
mode:
Diffstat (limited to 'app/routes')
-rw-r--r--app/routes/workout.py45
1 files changed, 28 insertions, 17 deletions
diff --git a/app/routes/workout.py b/app/routes/workout.py
index 0c6116c..996105c 100644
--- a/app/routes/workout.py
+++ b/app/routes/workout.py
@@ -27,7 +27,6 @@ def workout_create():
else:
flash("Workout with this name already exists", "danger")
else:
- print(form)
print(form.errors)
return render_template("workout/create.html", form=form)
@@ -50,21 +49,35 @@ def workout_edit():
form = WorkoutCreateForm()
if form.validate_on_submit():
- # Form has been submitted, write changes FIXME
+ # Form has been submitted, write changes
for entry in form.exercises.entries:
- # Get the specified exercise TODO needs hidden id field
- exercise = Exercise.query.filter_by(
- workout_id=workout.id, id=int(entry.data["id"])
- ).first()
- if not exercise:
- continue
-
- # Update exercise
- exercise.name = entry.data["name"]
- exercise.sets = entry.data["sets"]
- exercise.units = entry.data["units"]
- exercise.type = entry.data["type"]
+ id = entry.data["id"]
+ name = entry.data["name"]
+ sets = entry.data["sets"]
+ units = entry.data["units"]
+ type = entry.data["type"]
+
+ # Is this a new exercise or an old one
+ if id:
+ # Get the specified exercise
+ exercise = Exercise.query.filter_by(
+ workout_id=workout.id, id=int(id)
+ ).first()
+
+ if not exercise:
+ continue
+
+ # Update exercise
+ exercise.name = name
+ exercise.sets = sets
+ exercise.units = units
+ exercise.type = type
+ else:
+ # Create new exercise
+ workout.exercises.append(Exercise(name, sets, units, type))
+
+ # FIXME: support deleting exercises
# Write changes to database
db.session.commit()
@@ -76,9 +89,7 @@ def workout_edit():
for exercise in workout.exercises:
form.exercises.append_entry(exercise)
- return render_template(
- "workout/create.html", form=form, title=f'Edit Workout "{workout.name}"'
- )
+ return render_template("workout/create.html", form=form, workout=workout)
@app.route("/workout/record", methods=["GET", "POST"])