{% extends "list_view.html" %} {% load i18n %} {% comment %} Overrides the outer `content` block, not page.header/page.content-wrapper: those sit inside page_view.html's , a plain div that breaks the flex chain a filled layout needs (specs/027-table-layout-and-column-styling/research.md R5). {% endcomment %} {% comment %} page.actions skips {{ block.super }}: list_view.html's default includes sort, which a table view's own action set must not (FR-007) — see MVPTableViewMixin.actions. {% endcomment %} {% comment %} The breadcrumb trail draws in the app header, not here, so page.header has nothing of its own to draw — it stays declared for a project that filled it. {% endcomment %} {% comment %} app.footer is emptied: the shell's footer belongs to a page that ends, and this one does not — the table spends the whole viewport, so a footer under it either steals rows or never comes into view. {% endcomment %} {% block app.footer %}{% endblock app.footer %} {% block content %} {% block page.content-wrapper %} {% comment %} gap="0" and padding on the bands, never the page: the table meets the shell edges, so a gap or page padding would inset the scroll region. Three bands stay put (anything in page.header, the toolbar, the footer) and the table between them is the one thing that scrolls. {% endcomment %} {% block page.header %} {% endblock page.header %} {% block page.toolbar %} {% if refinements %} {% blocktrans count counter=refinements|length %}{{ counter }} filter active{% plural %}{{ counter }} filters active{% endblocktrans %} {% endif %} {% block page.title %}

{{ page.title }}

{% block page.summary %} {% endblock page.summary %} {% if page.subtitle %} {% endif %} {% endblock page.title %}
{% block page.actions %} {% endblock page.actions %} {% block page.panel %} {% if is_searchable or filter or refinements or directory.create_url %}
{% if is_searchable %}
{% block page.search %} {% endblock page.search %}
{% endif %}
{% block page.controls %} {% endblock page.controls %}
{% block page.refinements %} {% endblock page.refinements %} {% endif %} {% endblock page.panel %}
{% endblock page.toolbar %} {% block page.content %} {% endblock page.content %} {% block page.footer %} {% if page_obj %} {% endif %} {% endblock page.footer %}
{% endblock page.content-wrapper %}
{% endblock content %}