{% extends "controlpanel/base.html" %} {% load static lucide %} {% block heading %}RosterChief Platform Dashboard{% endblock heading %} {% block subheading %}Welcome back {{ user.member.first_name }}!{% endblock subheading %} {% block actions %} {% lucide "plus" size=16 %} Create new club {% endblock actions %} {% block panel %} {% comment %} Needs attention first: these are the numbers that are supposed to be zero. A club with no current season cannot take a signup or schedule a match — and it fails silently, nothing errors — while an admin without a second factor is locked out of their own club. Both are work queues, not statistics. The vanity totals sit further down. {% endcomment %}
New members against returning ones, across every club.
Where clubs stall. One with no team or no events is a shell.
| {{ flag.name }} | {% if flag.overridden %} {# `everyone` overrides club targeting, so the club count says nothing here. #} {% if flag.everyone %}On for all{% else %}Off everywhere{% endif %} {% else %} {{ flag.clubs }} / {{ totals.clubs }} clubs {% endif %} |
| No features yet. |
| Club | Members | Unpaid | Owed | Teams | Upcoming | Admins |
|---|---|---|---|---|---|---|
|
{{ club.name }}
{{ club.slug }}
{% if not club.has_season %}{% lucide "calendar-x" size=10 %} No season{% endif %}
{% if not club.upcoming_events %}{% lucide "moon-star" size=10 %} Dormant{% endif %}
|
{{ club.active_members }} | {{ club.unpaid_members }} | €{{ club.outstanding|floatformat:2 }} | {{ club.team_count }} {% if club.teams_without_coach %} {{ club.teams_without_coach }} no coach {% endif %} | {{ club.upcoming_events }} | {{ club.admin_count }} |
| No clubs yet. | ||||||