diff options
| -rw-r--r-- | app/routes/__init__.py | 3 | ||||
| -rw-r--r-- | app/routes/basic.py | 11 | ||||
| -rw-r--r-- | app/routes/user.py | 52 | ||||
| -rw-r--r-- | app/routes/workout.py (renamed from app/routes.py) | 57 | ||||
| -rw-r--r-- | app/static/js/record.js | 9 | ||||
| -rw-r--r-- | app/templates/workout/record.html | 9 |
6 files changed, 81 insertions, 60 deletions
diff --git a/app/routes/__init__.py b/app/routes/__init__.py new file mode 100644 index 0000000..e243576 --- /dev/null +++ b/app/routes/__init__.py @@ -0,0 +1,3 @@ +from routes.user import * +from routes.workout import * +from routes.basic import * diff --git a/app/routes/basic.py b/app/routes/basic.py new file mode 100644 index 0000000..36f42f5 --- /dev/null +++ b/app/routes/basic.py @@ -0,0 +1,11 @@ +from app import app, db +from flask_login import login_required + +@app.route("/", methods=["GET"]) +def index(): + return render_template('index.html') + +@app.route("/home", methods=["GET"]) +@login_required +def home(): + return render_template('home.html') diff --git a/app/routes/user.py b/app/routes/user.py new file mode 100644 index 0000000..4568d97 --- /dev/null +++ b/app/routes/user.py @@ -0,0 +1,52 @@ +from app import app, db +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 +from tables import User + +@app.route("/login", methods=['GET', 'POST']) +def login(): + form = LoginForm() + username = form.username.data + password = form.password.data + + if form.validate_on_submit(): + # Valid submission + user = User.query.filter_by(username=username).first() + + # TODO: show user if login succeeded + if user and user.verify_password(password): + login_user(user) + return redirect(url_for('home')) + else: + flash("Invalid username or password", "danger") + + return render_template('user/login.html', form=form) + +@app.route("/logout", methods=['GET', 'POST']) +def logout(): + logout_user() + return redirect('/') + +@app.route("/register", methods=['GET', 'POST']) +def register(): + form = RegisterForm() + # Load data from form + username = form.username.data + password = form.password.data + email = form.email.data + + if form.validate_on_submit(): + # Valid submission + user = User.query.filter_by(username=username).first() + if not user: + # No user with this username + user = User(username, password, email) + db.session.add(user) + db.session.commit() + return redirect(url_for('login')) + else: + flash("User already exists", "danger") + + return render_template('user/register.html', form=form) + diff --git a/app/routes.py b/app/routes/workout.py index 76ea96a..db8ab48 100644 --- a/app/routes.py +++ b/app/routes/workout.py @@ -1,64 +1,9 @@ from app import app, db from flask import render_template, redirect, request, url_for, flash -from flask_login import current_user, login_user, login_required, logout_user +from flask_login import current_user, login_required from forms import LoginForm, RegisterForm, WorkoutCreateForm from tables import User, Workout -@app.route("/", methods=["GET"]) -def index(): - return render_template('index.html') - -@app.route("/home", methods=["GET"]) -@login_required -def home(): - return render_template('home.html') - -@app.route("/login", methods=['GET', 'POST']) -def login(): - form = LoginForm() - username = form.username.data - password = form.password.data - - if form.validate_on_submit(): - # Valid submission - user = User.query.filter_by(username=username).first() - - # TODO: show user if login succeeded - if user and user.verify_password(password): - login_user(user) - return redirect(url_for('home')) - else: - flash("Invalid username or password", "danger") - - return render_template('user/login.html', form=form) - -@app.route("/logout", methods=['GET', 'POST']) -def logout(): - logout_user() - return redirect('/') - -@app.route("/register", methods=['GET', 'POST']) -def register(): - form = RegisterForm() - # Load data from form - username = form.username.data - password = form.password.data - email = form.email.data - - if form.validate_on_submit(): - # Valid submission - user = User.query.filter_by(username=username).first() - if not user: - # No user with this username - user = User(username, password, email) - db.session.add(user) - db.session.commit() - return redirect(url_for('login')) - else: - flash("User already exists", "danger") - - return render_template('user/register.html', form=form) - @app.route("/workout/create", methods=['GET', 'POST']) @login_required def createWorkout(): diff --git a/app/static/js/record.js b/app/static/js/record.js new file mode 100644 index 0000000..fedbdd7 --- /dev/null +++ b/app/static/js/record.js @@ -0,0 +1,9 @@ + +// Called when the check at the end of a set line is clicked +function onClickSetCheck(elem) { + if (elem.classList.contains('is-success')) { + elem.classList.remove('is-success'); + } else { + elem.classList.add('is-success'); + } +} diff --git a/app/templates/workout/record.html b/app/templates/workout/record.html index 6463fe4..0908ef8 100644 --- a/app/templates/workout/record.html +++ b/app/templates/workout/record.html @@ -22,13 +22,12 @@ <input class="input" type="number" min="0"> </div> </div> - - <!-- Done button --> - <p class="button"> + <!-- TODO: fix align --> + <button class="button" onClick="onClickSetCheck(this)"> <span class="icon is-small"> <i class="fa fa-check"></i> </span> - </p> + </button> </div> </div> @@ -47,4 +46,6 @@ </div> </div> +<script async type="text/javascript" src="/static/js/record.js"></script> + {% endblock %} |
