By default only load 5 most recent workouts for list, but on click of button at bottom load them all

This commit is contained in:
Peter Stockings
2023-10-13 18:52:47 +11:00
parent 2009be51ad
commit b23e6064d7
3 changed files with 91 additions and 73 deletions

19
app.py
View File

@@ -287,6 +287,14 @@ def calendar_view(user_id):
return render_template('partials/calendar.html', calendar_month=calendar_month, user_id=user_id)
@ app.route("/user/<int:user_id>/workout/list", methods=['GET'])
def workout_list(user_id):
max_date = request.args.get(
'min_date', default=datetime.now().date(), type=toDate)
workouts = get_workouts_for_user(user_id, max_date=max_date)
return render_template('partials/workouts_list_fragment.html', workouts=workouts, user_id=user_id)
def render_users_and_workouts():
users = User.query.all()
users_data = []
@@ -356,11 +364,16 @@ def render_users_and_workouts():
return render_template('users_and_workouts.html', users=users_data, bikes=Bike.query.all())
def get_workouts_for_user(user_id):
def get_workouts_for_user(user_id, max_date=None):
user = User.query.get(user_id)
workouts_data = []
workouts = Workout.query.filter_by(user_id=user_id).order_by(
Workout.created_at.desc()).all()
workouts = []
if max_date:
workouts = Workout.query.filter_by(user_id=user_id).filter(
Workout.started_at < max_date).order_by(Workout.created_at.desc()).all()
else:
workouts = Workout.query.filter_by(user_id=user_id).order_by(
Workout.created_at.desc()).all()
for workout in workouts: