Files
SneakySwole/app/templates/partials/stats_card.html
Phillip Tarrant df8d5c65fb
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 13s
feat: enhance dashboard with PRs, adherence, activity, progression chart, and muscle heatmap
Add 3 new stat cards (Last Workout, Personal Records, Adherence Rate),
recent activity table, progression timeline chart, and muscle group
recency heatmap to the dashboard. Remove Total Volume card.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 15:44:21 -05:00

54 lines
1.6 KiB
HTML

<article>
<header><h4>Sessions</h4></header>
<p style="font-size:2rem; font-weight:700;">
{{ stats.total_sessions }}
</p>
</article>
<article>
<header><h4>Total Sets</h4></header>
<p style="font-size:2rem; font-weight:700;">
{{ stats.total_sets }}
</p>
</article>
<article>
<header><h4>Streak</h4></header>
<p style="font-size:2rem; font-weight:700;">
{{ stats.current_streak }} week{{ "s" if stats.current_streak != 1 }}
</p>
</article>
</div>
<div class="grid">
<article>
<header><h4>Last Workout</h4></header>
<p style="font-size:2rem; font-weight:700;">
{% if stats.last_workout_date %}
{{ stats.last_workout_date.strftime('%b %d') }}
{% else %}
Never
{% endif %}
</p>
</article>
<article>
<header><h4>Personal Records</h4></header>
<p style="font-size:2rem; font-weight:700;">
{{ personal_records|length }} PR{{ "s" if personal_records|length != 1 }}
</p>
{% if personal_records %}
<details>
<summary>View records</summary>
<ul style="font-size:0.85rem; margin-top:0.5rem;">
{% for pr in personal_records[:10] %}
<li>{{ pr.exercise_name }}: {{ pr.weight_display }}</li>
{% endfor %}
</ul>
</details>
{% endif %}
</article>
<article>
<header><h4>Adherence</h4></header>
<p style="font-size:2rem; font-weight:700;">
{{ adherence.rate }}%
</p>
<small>{{ adherence.completed }}/{{ adherence.expected }} sessions ({{ adherence.weeks }}wk)</small>
</article>