{% extends "layouts/main.html" %} {% block title %}{{ page_title }} — pyvelm{% endblock %} {% block page_title %}{{ page_title }}{% endblock %} {% block page_actions %} {% if create_href %} {% elif form_view_name %} {% else %} {% endif %} New {% endblock %} {# ── Main content ── #} {% block content %}
{% if view_switcher %} {% include "_view_switcher.html" %} {% endif %} {# ── Toolbar: search bar + page size on one row. #}
{# Top row: chips + input #}
{# Active filter chips (free-text search + future Filter-By). #} {# Loading indicator #} {# Clear-all when at least one chip is active. #} {# Column visibility — toggles which list columns are shown. #} {# Filters toggle — opens the per-column Filter By + Group By panel. #}
{# ── Dropdown: Filter By + Group By ── Anchored to the search bar, two-column on md+, stacked on small screens. Each Filter By item is a
-like toggle that reveals its type-appropriate sub-control: - m2o → searchable picker via /api/m2o/search - boolean → fixed Yes / No buttons - other → not in this slice Group By items are single-select; clicking the active one clears the grouping. #}
Show columns
{# ── Filter By column ── #}
Filter By
{# ── Group By column ── #}
Group By
Rows
{# Group-by chip (rendered separately from search chips because the grouping is a single-value mode rather than an AND-leaf). #}
Grouped by
{# ── Table + Pagination — HTMX swap target #}
{% include "list_table.html" %}
{% endblock %}