Show monthly stats in calendar view
This commit is contained in:
@@ -212,6 +212,25 @@ def get_calendar(person_id):
|
||||
# Add view-specific data
|
||||
if selected_view == 'month':
|
||||
calendar_view_data['days'] = _process_workouts_for_month_view(grouped_workouts, start_date, end_date, selected_date)
|
||||
|
||||
# Calculate summary stats for the selected month
|
||||
total_workouts = 0
|
||||
total_sets = 0
|
||||
unique_exercises = set()
|
||||
for workout_date, workouts in grouped_workouts.items():
|
||||
if workout_date.month == selected_date.month and workout_date.year == selected_date.year:
|
||||
total_workouts += len(workouts)
|
||||
for workout in workouts.values():
|
||||
total_sets += len(workout.get('sets', []))
|
||||
for topset in workout.get('sets', []):
|
||||
if topset.get('exercise_name'):
|
||||
unique_exercises.add(topset.get('exercise_name'))
|
||||
|
||||
calendar_view_data['summary_stats'] = {
|
||||
'total_workouts': total_workouts,
|
||||
'total_sets': total_sets,
|
||||
'total_exercises': len(unique_exercises)
|
||||
}
|
||||
elif selected_view == 'year':
|
||||
calendar_view_data['months'] = _process_workouts_for_year_view(grouped_workouts, selected_date)
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -39,7 +39,32 @@
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="mr-4">
|
||||
<div class="flex items-center space-x-2 mr-4">
|
||||
{% if view == 'month' %}
|
||||
<div
|
||||
class="hidden lg:flex items-center space-x-3 text-xs font-medium text-gray-500 border-l border-gray-200 pl-4 h-6">
|
||||
<div class="flex items-center">
|
||||
<span class="text-blue-600 mr-1">{{ summary_stats.total_workouts }}</span>
|
||||
<span class="uppercase tracking-wider">Workouts</span>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
<span class="text-blue-600 mr-1">{{ summary_stats.total_sets }}</span>
|
||||
<span class="uppercase tracking-wider">Sets</span>
|
||||
</div>
|
||||
{% if summary_stats.total_workouts > 0 %}
|
||||
<div class="flex items-center">
|
||||
<span class="text-blue-600 mr-1">{{ (summary_stats.total_sets / summary_stats.total_workouts) |
|
||||
round(1) }}</span>
|
||||
<span class="uppercase tracking-wider">Sets/Session</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="flex items-center">
|
||||
<span class="text-blue-600 mr-1">{{ summary_stats.total_exercises }}</span>
|
||||
<span class="uppercase tracking-wider">Exercises</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{{ render_partial('partials/custom_select.html',
|
||||
name='view',
|
||||
options=[
|
||||
|
||||
Reference in New Issue
Block a user