Set bike per workout and more style changes
This commit is contained in:
26
app.py
26
app.py
@@ -48,8 +48,11 @@ class Workout(db.Model):
|
||||
user_id = db.Column(db.Integer, db.ForeignKey(
|
||||
'users.id', ondelete='CASCADE'), nullable=False)
|
||||
created_at = db.Column(db.DateTime, nullable=False, default=db.func.now())
|
||||
bike_id = db.Column(db.Integer, db.ForeignKey(
|
||||
'bikes.id', ondelete='CASCADE'), nullable=False)
|
||||
cadence_readings = db.relationship(
|
||||
'CadenceReading', backref='workout', lazy=True)
|
||||
bike = db.relationship('Bike', backref='workouts', lazy=True)
|
||||
|
||||
|
||||
class CadenceReading(db.Model):
|
||||
@@ -109,11 +112,13 @@ def workouts(user_id):
|
||||
return render_template('workouts_list.html', workouts=workouts_data)
|
||||
|
||||
elif request.method == 'POST':
|
||||
user = User.query.get(user_id)
|
||||
|
||||
data = request.json
|
||||
data = data['workout']
|
||||
|
||||
# create a new workout
|
||||
workout = Workout(user_id=user_id)
|
||||
workout = Workout(user_id=user_id, bike_id=user.bike_id)
|
||||
db.session.add(workout)
|
||||
db.session.commit()
|
||||
|
||||
@@ -199,6 +204,18 @@ def render_users_and_workouts():
|
||||
users_data = []
|
||||
for user in users:
|
||||
workouts = get_workouts_for_user(user.id)
|
||||
if not workouts:
|
||||
user_data = {
|
||||
'id': user.id,
|
||||
'name': user.name,
|
||||
'bike_id': user.bike_id,
|
||||
'workouts_count': 0,
|
||||
'workouts': [],
|
||||
'workout_counts_by_week': 0,
|
||||
'duration_by_week': 0
|
||||
}
|
||||
users_data.append(user_data)
|
||||
continue
|
||||
workout_counts_by_week = []
|
||||
duration_by_week = []
|
||||
# get start date from last workout
|
||||
@@ -236,6 +253,10 @@ def render_users_and_workouts():
|
||||
'duration_by_week': duration_by_week
|
||||
}
|
||||
users_data.append(user_data)
|
||||
|
||||
if htmx:
|
||||
render_template('users_and_workouts_wrapper.html',
|
||||
users=users_data, bikes=Bike.query.all())
|
||||
return render_template('users_and_workouts.html', users=users_data, bikes=Bike.query.all())
|
||||
|
||||
|
||||
@@ -265,7 +286,8 @@ def get_workouts_for_user(user_id):
|
||||
'duration_minutes': duration.total_seconds() / 60,
|
||||
'average_rpm': int(average_rpm),
|
||||
'calories': int(calories),
|
||||
'distance': int(distance)
|
||||
'distance': int(distance),
|
||||
'bike_display_name': workout.bike.display_name
|
||||
})
|
||||
return workouts_data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user