diff options
| -rw-r--r-- | app/forms/__init__.py | 2 | ||||
| -rw-r--r-- | app/forms/user.py (renamed from app/forms.py) | 0 | ||||
| -rw-r--r-- | app/forms/workout.py | 13 | ||||
| -rw-r--r-- | app/routes.py | 13 | ||||
| -rw-r--r-- | app/templates/workout/create.html | 26 |
5 files changed, 45 insertions, 9 deletions
diff --git a/app/forms/__init__.py b/app/forms/__init__.py new file mode 100644 index 0000000..b904c84 --- /dev/null +++ b/app/forms/__init__.py @@ -0,0 +1,2 @@ +from forms.user import * +from forms.workout import * diff --git a/app/forms.py b/app/forms/user.py index 12e4bf8..12e4bf8 100644 --- a/app/forms.py +++ b/app/forms/user.py diff --git a/app/forms/workout.py b/app/forms/workout.py new file mode 100644 index 0000000..4a96b32 --- /dev/null +++ b/app/forms/workout.py @@ -0,0 +1,13 @@ +from flask_wtf import FlaskForm, Form +from wtforms import FieldList, FormField, IntegerField, StringField +from wtforms.validators import DataRequired, Email + +# Subclass, not used directly +class ExerciseForm(Form): + name = StringField("name", [DataRequired()]) + sets = IntegerField("sets", [DataRequired()]) + reps = IntegerField("reps", [DataRequired()]) + +class WorkoutCreateForm(FlaskForm): + name = StringField("name", [DataRequired()]) + exercises = FieldList(FormField(ExerciseForm), min_entries=1) diff --git a/app/routes.py b/app/routes.py index 336218c..1a30944 100644 --- a/app/routes.py +++ b/app/routes.py @@ -1,7 +1,7 @@ from app import app, db from flask import render_template, redirect, url_for, flash from flask_login import login_user, login_required, logout_user -from forms import LoginForm, RegisterForm +from forms import LoginForm, RegisterForm, WorkoutCreateForm from tables.user import User @app.route("/", methods=["GET"]) @@ -62,5 +62,14 @@ def register(): @app.route("/workout/create", methods=['GET', 'POST']) @login_required def createWorkout(): - form = RegisterForm() + form = WorkoutCreateForm() + + # Load data from form + print(form.name.data) + for entry in form.exercises.entries: + print(entry.data) + + if form.validate_on_submit(): + print("Valid") + return render_template('workout/create.html', form=form) diff --git a/app/templates/workout/create.html b/app/templates/workout/create.html index b29e7b6..eaf5f39 100644 --- a/app/templates/workout/create.html +++ b/app/templates/workout/create.html @@ -7,7 +7,7 @@ <div class="field-body"> <div class="field"> <p class="control is-expanded has-icons-left"> - <input class="input" type="text" placeholder="Workout Name"> + <input class="input" name="name" type="text" placeholder="Workout Name"> <span class="icon is-small is-left"> <i class="fa fa-tag"></i> </span> @@ -20,7 +20,7 @@ <div class="field-body"> <div class="field"> <p class="control is-expanded has-icons-left"> - <input class="input" name='exercise-0' type="text" placeholder="Exercise Name"> + <input class="input" name='exercises-0-name' type="text" placeholder="Exercise Name"> <span class="icon is-small is-left"> <i class="fa fa-tag"></i> </span> @@ -28,7 +28,15 @@ </div> <div class="field"> <p class="control is-expanded has-icons-left"> - <input class="input" name='reps-0' type="number" placeholder="Reps" min="1" max="100"> + <input class="input" name='exercises-0-sets' type="number" placeholder="Sets" min="1" max="100"> + <span class="icon is-small is-left"> + <i class="fa fa-calculator"></i> + </span> + </p> + </div> + <div class="field"> + <p class="control is-expanded has-icons-left"> + <input class="input" name='exercises-0-reps' type="number" placeholder="Reps" min="1" max="100"> <span class="icon is-small is-left"> <i class="fa fa-calculator"></i> </span> @@ -66,15 +74,19 @@ function handleAdd() { rowsDiv = document.getElementById("rows"); newRow = rowsDiv.children[0].cloneNode(true); - rowId++; + exerciseNameInput = newRow.children[0].children[0].children[0].children[0]; exerciseNameInput.value = ''; - exerciseNameInput.name = 'exercise-' + rowId; + exerciseNameInput.name = 'exercises-' + rowId + '-name'; + + exerciseSetInput = newRow.children[0].children[1].children[0].children[0]; + exerciseSetInput.value = ''; + exerciseSetInput.name = 'exercises-' + rowId + '-sets'; - exerciseRepInput = newRow.children[0].children[1].children[0].children[0]; + exerciseRepInput = newRow.children[0].children[2].children[0].children[0]; exerciseRepInput.value = ''; - exerciseRepInput.name = 'reps-' + rowId; + exerciseRepInput.name = 'exercises-' + rowId + '-reps'; rowsDiv.append(newRow); } |
