summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstilbruch <stilbruch@protonmail.com>2022-04-06 13:22:43 -0500
committerstilbruch <stilbruch@protonmail.com>2022-04-06 13:22:43 -0500
commitd0c2bb02d91382d99d72ce5e80b321a53a80e576 (patch)
tree76507e6074051359aa307b9f08eddf2fab1e869f
parent6c477a7c8a7e5a26c85635e0b855dcc3e2a8ae4c (diff)
downloadStrengthy-d0c2bb02d91382d99d72ce5e80b321a53a80e576.tar.xz
Strengthy-d0c2bb02d91382d99d72ce5e80b321a53a80e576.zip
Added form classes for "create workout" form
-rw-r--r--app/forms/__init__.py2
-rw-r--r--app/forms/user.py (renamed from app/forms.py)0
-rw-r--r--app/forms/workout.py13
-rw-r--r--app/routes.py13
-rw-r--r--app/templates/workout/create.html26
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);
}