Add badges to sets showing stats ie weight/rep increase or how many weeks stalled

This commit is contained in:
Peter Stockings
2026-01-30 22:42:06 +11:00
parent eada1a829b
commit e156dd30cc
5 changed files with 138 additions and 3 deletions

View File

@@ -0,0 +1,35 @@
{% if achievements %}
{% if achievements.is_pr_weight or achievements.is_pr_e1rm or achievements.is_pr_reps %}
<span
class="inline-flex items-center rounded-full bg-gradient-to-r from-yellow-100 to-amber-200 px-2.5 py-0.5 text-xs font-bold text-amber-900 shadow-sm ring-1 ring-inset ring-amber-500/30 whitespace-nowrap"
title="Personal Record">
<svg class="mr-1 h-3 w-3 text-amber-600" fill="currentColor" viewBox="0 0 20 20">
<path
d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" />
</svg>
PR
</span>
{% endif %}
{% if achievements.weight_increase > 0 %}
<span
class="inline-flex items-center rounded-full bg-green-100 px-2.5 py-0.5 text-xs font-bold text-green-800 shadow-sm ring-1 ring-inset ring-green-500/30 whitespace-nowrap"
title="Weight increase vs last time">
+{{ achievements.weight_increase }}kg
</span>
{% elif achievements.rep_increase > 0 %}
<span
class="inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-bold text-blue-800 shadow-sm ring-1 ring-inset ring-blue-500/30 whitespace-nowrap"
title="Rep increase at same weight vs last time">
+{{ achievements.rep_increase }} reps
</span>
{% endif %}
{% if achievements.stalled_sessions >= 1 %}
<span
class="inline-flex items-center rounded-full bg-slate-100 px-2.5 py-0.5 text-xs font-semibold text-slate-600 shadow-sm ring-1 ring-inset ring-slate-400/20 whitespace-nowrap"
title="Weight and reps matched for {{ achievements.stalled_sessions + 1 }} sessions total">
Stalled ({{ achievements.stalled_sessions + 1 }}x)
</span>
{% endif %}
{% endif %}

View File

@@ -31,9 +31,14 @@
</div>
{% endif %}
</td>
<td class="p-4 whitespace-nowrap text-sm font-semibold text-gray-900">
<td class="p-4 text-sm font-semibold text-gray-900">
{% if is_edit|default(false, true) == false %}
{{ repetitions }} x {{ weight }}kg
<div class="flex flex-wrap items-center gap-x-2 gap-y-1">
<span class="whitespace-nowrap">{{ repetitions }} x {{ weight }}kg</span>
<div hx-get="{{ url_for('workout.get_topset_achievements', person_id=person_id, workout_id=workout_id, topset_id=topset_id) }}"
hx-trigger="load" hx-target="this" hx-swap="innerHTML" class="flex flex-wrap items-center gap-1">
</div>
</div>
{% else %}
<div class="flex items-center flex-col sm:flex-row">
<input type="number"