Show the cover-end date for waived periods too, not just paid
The "until <date>" only appeared for a PAID due, because the annotation filtered status=PAID. A WAIVED period is settled just the same — the club is covered for that time, and its end is still when grace would start — so it belongs there too. The annotation is now `covered_until` (furthest-out period end where status is PAID or WAIVED) plus `covered_status`, read from the same ordered row so the table can badge "paid" vs "waived" and still show the date for both. Rides the same single query — assertNumQueries(1) still holds. Full matrix now: no plan -> n/a; paid -> "paid, until X"; waived -> "waived, until X"; unpaid/partial -> the amount owed (no date); a paid-then-owing club shows the amount, not the stale cover date. A subscribed club with no covering period at all (only cancelled dues) shows a dash rather than a bare "paid". Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -87,11 +87,22 @@
|
||||
<div class="flex flex-row gap-2 items-center justify-end">
|
||||
{% if not club.dues_owed %}
|
||||
{% if club.tier_name %}
|
||||
{% comment %} paid_until is the current period's end — the day grace would start if nothing renews. On its own row under the badge. {% endcomment %}
|
||||
{% comment %}
|
||||
Not owing and on a plan. covered_until is the settled period's end — the day
|
||||
grace would start if nothing renews — shown on its own row under the badge,
|
||||
for a paid period AND a waived one (both cover the club, they just differ in
|
||||
how). No covered period at all (only cancelled dues, say) shows a dash.
|
||||
{% endcomment %}
|
||||
<div class="flex flex-col items-end gap-1">
|
||||
<span class="badge badge-success">paid</span>
|
||||
{% if club.paid_until %}
|
||||
<span class="whitespace-nowrap text-xs opacity-60">until {{ club.paid_until|date:"j M Y" }}</span>
|
||||
{% if club.covered_status == "waived" %}
|
||||
<span class="badge badge-ghost">waived</span>
|
||||
{% elif club.covered_until %}
|
||||
<span class="badge badge-success">paid</span>
|
||||
{% else %}
|
||||
<span class="badge badge-ghost badge-outline">—</span>
|
||||
{% endif %}
|
||||
{% if club.covered_until %}
|
||||
<span class="whitespace-nowrap text-xs opacity-60">until {{ club.covered_until|date:"j M Y" }}</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
Reference in New Issue
Block a user