Change default user graphs from hardcoded to loaded from user object as array,TODO: perhaps store loaded graphs for each user

This commit is contained in:
Peter Stockings
2023-10-24 20:31:56 +11:00
parent 5a1c2409cf
commit b128ede9d0
2 changed files with 6 additions and 7 deletions

5
app.py
View File

@@ -485,6 +485,8 @@ def generate_user_data(user, workouts=[]):
'calendar_month': generate_calendar_monthly_view(workouts, datetime.now().date()),
'attributes': [('workout_count', 'Workout count'), ('duration_seconds', 'Duration (sec)'), ('duration_minutes', 'Duration (min)'), ('average_rpm', 'Average RPM'), ('max_rpm', 'Max RPM'), ('average_bpm', 'Average BPM'), ('max_bpm', 'Max BPM'), ('distance', 'Distance'), ('calories', 'Calories')],
'periods': [('day', 'Day'), ('week', 'Week'), ('month', 'Month')],
# (period: str, attributes: [str])
'graphs': [('month', ['duration_minutes']), ('week', ['average_rpm', 'average_bpm']), ('week', ['workout_count'])],
'first_workout_date': workouts[-1]['start_time_date'] if workouts else None,
'last_workout_date': workouts[0]['start_time_date'] if workouts else None,
}
@@ -636,8 +638,7 @@ def generate_calendar_monthly_view(workouts, selected_date):
start_date, end_date = get_month_bounds(selected_date)
# Build a lookup dictionary for faster access
workout_lookup = {w['start_time_date']
: w for w in workouts if start_date <= w['start_time_date'] <= end_date}
workout_lookup = {w['start_time_date'] : w for w in workouts if start_date <= w['start_time_date'] <= end_date}
current_date = datetime.now().date()
days_of_month = [

View File

@@ -89,10 +89,8 @@
</div>
<div id="user-workouts-overview-graphs-{{ user.id }}">
<img src="{{ url_for('graph_user_workouts', user_id=user.id, period='week', attributes=['workout_count']) }}"
loading="lazy" alt="No image" class="mx-auto" _="on click remove me">
<img src="{{ url_for('graph_user_workouts', user_id=user.id, period='month', attributes=['duration_minutes']) }}"
loading="lazy" alt="No image" class="mx-auto" _="on click remove me">
<img src="{{ url_for('graph_user_workouts', user_id=user.id, period='week', attributes=['average_rpm','average_bpm']) }}"
{% for period, attributes in user.graphs %}
<img src="{{ url_for('graph_user_workouts', user_id=user.id, period=period, attributes=attributes) }}"
loading="lazy" alt="No image" class="mx-auto" _="on click remove me">
{% endfor %}
</div>