diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/forms/workout.py | 5 | ||||
| -rw-r--r-- | app/routes/api.py | 2 | ||||
| -rw-r--r-- | app/routes/basic.py | 2 | ||||
| -rw-r--r-- | app/routes/workout.py | 1 | ||||
| -rw-r--r-- | app/templates/home.html | 96 |
5 files changed, 49 insertions, 57 deletions
diff --git a/app/forms/workout.py b/app/forms/workout.py index f3a1082..a06c771 100644 --- a/app/forms/workout.py +++ b/app/forms/workout.py @@ -4,6 +4,7 @@ from wtforms import ( FormField, HiddenField, IntegerField, + FloatField, SelectField, StringField, ) @@ -14,7 +15,7 @@ class ExerciseCreateForm(Form): id = HiddenField("id", [Optional()]) name = StringField("name", [DataRequired()]) sets = IntegerField("sets", [DataRequired()]) - units = IntegerField("units", [DataRequired()]) + units = FloatField("units", [DataRequired()]) type = SelectField( "type", [DataRequired()], choices=[("reps", "Reps"), ("time", "Time")] ) @@ -27,7 +28,7 @@ class WorkoutCreateForm(FlaskForm): # /workout/record class SetForm(Form): - lbs = IntegerField("lbs", [Optional()]) + lbs = FloatField("lbs", [Optional()]) units = IntegerField("units", [Optional()]) diff --git a/app/routes/api.py b/app/routes/api.py index 77c8650..097400d 100644 --- a/app/routes/api.py +++ b/app/routes/api.py @@ -1,5 +1,5 @@ from app import app, db -from flask import redirect, request, jsonify +from flask import redirect, request, jsonify, url_for from flask_login import current_user, login_required from tables import Exercise, SetRecord, Workout, WorkoutRecord diff --git a/app/routes/basic.py b/app/routes/basic.py index b211da7..584d837 100644 --- a/app/routes/basic.py +++ b/app/routes/basic.py @@ -17,6 +17,7 @@ def home(): db.session.query(WorkoutRecord) .filter_by(user_id=current_user.id) .order_by(WorkoutRecord.finished.desc()) + .all() ) # Set records length @@ -36,6 +37,7 @@ def home(): .filter(SetRecord.exercise_id == Exercise.id) .group_by(Exercise.id) .order_by(db.func.count(SetRecord.id).desc()) + .having(db.func.count(SetRecord.id) > 1) .limit(3) .all() ) diff --git a/app/routes/workout.py b/app/routes/workout.py index e27cee8..767603e 100644 --- a/app/routes/workout.py +++ b/app/routes/workout.py @@ -131,6 +131,7 @@ def workout_record(workout_id=None): return redirect(url_for("home")) else: + print(form.errors) # Populate form with data for exercise in workout.exercises: form.exercises.append_entry( diff --git a/app/templates/home.html b/app/templates/home.html index e082173..e75d7ec 100644 --- a/app/templates/home.html +++ b/app/templates/home.html @@ -9,8 +9,7 @@ <h1 class="title"> Hello {{ current_user.username }} </h1> - <h2 class="subtitle"> - Welcome to your home. + <h2 class="subtitle"> Welcome to your home. </h2> </div> </div> @@ -20,12 +19,10 @@ <div class="tile is-parent"> <article class="tile is-child box"> <p class="title has-text-black">{{ current_user.workouts.count() }}</p> - <p class="subtitle has-text-black">Workouts</p> - </article> - </div> + <p class="subtitle has-text-black">Workouts</p> </article> </div> <div class="tile is-parent"> <article class="tile is-child box"> - <p class="title has-text-black">{{ records.count() }}</p> + <p class="title has-text-black">{{ records|length }}</p> <p class="subtitle has-text-black">Workouts Completed</p> </article> </div> @@ -36,12 +33,12 @@ </article> </div> <!-- Something else? - <div class="tile is-parent"> + <div class="tile is-parent"> <article class="tile is-child box"> - <p class="title">19</p> - <p class="subtitle">Exceptions</p> + <p class="title">19</p> + <p class="subtitle">Exceptions</p> </article> - </div> --> + </div> --> </div> </section> <div class="columns"> @@ -49,7 +46,7 @@ <div class="card events-card"> <header class="card-header"> <p class="card-header-title"> - My Workouts + My Workouts </p> </header> <div class="card-table"> @@ -57,34 +54,34 @@ <table class="table is-fullwidth is-striped"> <tbody> {% for workout in current_user.workouts %} - <tr> - <td>{{ workout.name }}</td> - <td>{{ workout.exercises.count() }} exercises</td> - <td class="level-right"> - <p class="buttons"> - <a class="button is-small is-primary" href="/workout/record/{{ workout.id }}">Record</a> - <a class="button is-small is-info" href="/workout/edit/{{ workout.id }}">Edit</a> - <a class="button is-small is-danger js-modal-trigger" data-target="modal-{{ workout.id }}" href="#">Delete</a> + <tr> + <td>{{ workout.name }}</td> + <td>{{ workout.exercises.count() }} exercises</td> + <td class="level-right"> + <p class="buttons"> + <a class="button is-small is-primary" href="/workout/record/{{ workout.id }}">Record</a> + <a class="button is-small is-info" href="/workout/edit/{{ workout.id }}">Edit</a> + <a class="button is-small is-danger js-modal-trigger" data-target="modal-{{ workout.id }}" href="#">Delete</a> + </p> + </td> + </tr> + <!-- Confirmation Modal --> + <div class="modal" id="modal-{{ workout.id }}"> + <div class="modal-background"></div> + <div class="modal-card"> + <section class="modal-card-body"> + <h1 class="title has-text-black">Are you sure?</h1> + <p> + Are you sure you want to delete this workout? + You will not be able to restore it once you do. </p> - </td> - </tr> - <!-- Confirmation Modal --> - <div class="modal" id="modal-{{ workout.id }}"> - <div class="modal-background"></div> - <div class="modal-card"> - <section class="modal-card-body"> - <h1 class="title has-text-black">Are you sure?</h1> - <p> - Are you sure you want to delete this workout? - You will not be able to restore it once you do. - </p> - </section> - <footer class="modal-card-foot"> - <a href="/api/workout/delete?id={{ workout.id }}" class="button is-danger">Confirm</a> - <button class="button">Cancel</button> - </footer> - </div> + </section> + <footer class="modal-card-foot"> + <a href="/api/workout/delete?id={{ workout.id }}" class="button is-danger">Confirm</a> + <button class="button">Cancel</button> + </footer> </div> + </div> {% endfor %} </tbody> </table> @@ -99,7 +96,7 @@ <div class="card events-card"> <header class="card-header"> <p class="card-header-title"> - Recent Workouts + Recent Workouts </p> </header> <div class="card-table"> @@ -118,35 +115,26 @@ </div> </div> <footer class="card-footer"> - <a href="#" class="card-footer-item">View All</a> + <p class='card-footer-item'>{{ records|length }} Recent Workouts</p> </footer> </div> </div> </div> <div class="columns"> + {% for completed_workout in top3 %} <div class="column is-4"> <div class="box"> - <canvas id="chart-1"> - </div> - </div> - <div class="column is-4"> - <div class="box"> - <canvas id="chart-2"> - </div> - </div> - <div class="column is-4"> - <div class="box"> - <canvas id="chart-3"> + <canvas id="chart-{{ loop.index }}"> </div> </div> + {% endfor %} </div> </div> <script type="text/javascript" src="/static/js/chart.js"></script> <script> -// TODO top 3 - exercise_chart('chart-1', {{ top3[0].id }}, "{{ top3[0].name }}"); - exercise_chart('chart-2', {{ top3[1].id }}, "{{ top3[1].name }}"); - exercise_chart('chart-3', {{ top3[2].id }}, "{{ top3[2].name }}"); + {% for completed_workout in top3 %} + exercise_chart('chart-{{ loop.index }}', {{ top3[loop.index0].id }}, "{{ top3[loop.index0].name }}"); + {% endfor %} </script> {% endblock %} |
