{% extends "mobile/coach/base.html" %} {% load i18n %} {% comment %} C3 -- design_handoff_rosterchief_platform/README.md's C3 section: units (Line 1, Defence pair 1, ...) of ordered slots, each filled via a native rather than the mock's drag-and-drop -- see CoachLineupView's own docstring for why, and for the known "+ Add line"/ "+ Add slot" rough edge (they don't save the other slots' picks first). The mock's "fully dark screen" is approximated with dark cards throughout rather than overriding the shared .coach-sheet's own light background -- a real per-screen shell hook is more infrastructure than one screen justifies. Both forms are hx-boost="false" -- the first has three submit buttons sharing one via formaction overrides (Save/+Add slot/+Add line), and htmx's boost reads the form's own action rather than the actual submitter's formaction override, so a boosted click would always post to the wrong endpoint. A plain navigation sidesteps that entirely. {% endcomment %} {% block header_extra %} {% trans "Line-up" %} {% if lineup.published_at %}{% trans "Published" %}{% endif %} {{ event.title }} · {{ event.start|date:"D d M H:i" }} {% endblock header_extra %} {% block content %} {% csrf_token %} {% for unit in units %} {{ unit.label }} {% for slot in unit.slots.all %} {% trans "Empty" %} {% for attendance in available %} {{ attendance.member.get_full_name }} {% endfor %} {% endfor %} {% if can_manage_active_team %} {% trans "+ Add slot" %} {% endif %} {% empty %} {% trans "No lines yet." %} {% endfor %} {% if can_manage_active_team %} {% trans "+ Add line" %} {% trans "Save line-up" %} {% endif %} {% if unavailable %} {% trans "Unavailable" %} {% for attendance in unavailable %} {{ attendance.member.get_full_name }} · {{ attendance.get_status_display }} {% endfor %} {% endif %} {% if can_manage_active_team and not lineup.published_at %} {% csrf_token %} {% trans "Publish" %} {% endif %} {% endblock content %}