Home already had the M1 dues card; Me's own "Payments & dues" row was explicitly stubbed out with nowhere to lead. Give it a real destination: a Payments screen (open balances for everyone managed, reusing Home's dues-card layout via a shared _dues_row.html partial) and a "N OPEN" pill on the Me row itself, only shown once something is actually owed. club.services.fees.open_dues_rows is factored out so Home and Payments can never drift apart on what counts as "still open". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ECGMEwrc2k4D8VQuwjstj9
24 lines
1.2 KiB
HTML
24 lines
1.2 KiB
HTML
{% load i18n %}
|
|
{% comment %}
|
|
One open season-dues card. Expects ``row`` ({membership, balance, invoice})
|
|
in scope -- included from both home.html's dues card and payments.html so
|
|
the two surfaces render identically (see club.services.fees.open_dues_rows,
|
|
their shared data source).
|
|
{% endcomment %}
|
|
<div class="m-card flex items-center gap-3 p-4">
|
|
<div class="flex h-11 w-11 shrink-0 items-center justify-center rounded-lg bg-danger-bg">
|
|
<span class="font-display text-lg font-extrabold text-club">€</span>
|
|
</div>
|
|
<div class="min-w-0 flex-1">
|
|
<div class="text-sm font-semibold text-ink">{% blocktrans with name=row.membership.member.first_name %}Season dues — {{ name }}{% endblocktrans %}</div>
|
|
<div class="text-xs text-muted">
|
|
{% if row.invoice %}
|
|
{% blocktrans with amount=row.balance|floatformat:2 due=row.invoice.due_date|date:"d M" %}€ {{ amount }} · due {{ due }}{% endblocktrans %}
|
|
{% else %}
|
|
{% blocktrans with amount=row.balance|floatformat:2 %}€ {{ amount }}{% endblocktrans %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<span class="btn btn-dark shrink-0">{% trans "Pay" %}</span>
|
|
</div>
|