{% extends "conjunto/base.html" %} {% load static i18n statici18n conjunto avatar %} {% comment %} Full application layout: topbar + sidebar + scrollable canvas + statusbar + two offcanvas panels. This is the template to extend for regular in-app pages. It preserves all historical block names that used to live in ``conjunto/base.html`` (top_bar, sidebar, canvas, page_*, content, footer, statusbar, offcanvas_*). Projects that previously extended ``conjunto/base.html`` for the app layout should switch to this template. {% endcomment %} {% block body_attrs %} data-default-sidebar-width="{{ cj_layout.sidebar_width }}" data-sidebar-width-url="{% url 'conjunto:sidebar-width' %}" style="--cj-sidebar-width: {{ cj_layout.sidebar_width }}; --cj-navbar-height: 3.5rem; --cj-statusbar-height: 2.5rem;" {% endblock %} {% block body %} {# ── Topbar ─────────────────────────────────────────────────────────────── #} {% block top_bar %} {% endblock %} {# ── Sidebar ─────────────────────────────────────────────────────────────── #} {% block sidebar %} {% include "conjunto/includes/sidebar.html" %} {% endblock %} {# ── Page content (canvas) ───────────────────────────────────────────────── #}
{% block canvas %} {# Page header #} {% block page_header %} {% endblock %} {# Messages are rendered as toasts via the toasts block below. #} {% block messages %}{% endblock %} {# Main content #}
{% block content %}{% endblock %}
{% endblock canvas %}
{# /.cj-page-content #} {# ── Statusbar / Footer (fixed bottom) ──────────────────────────────────── #} {% block footer %} {% endblock %} {# ── Offcanvas Left ──────────────────────────────────────────────────────── #}
{% block offcanvas_left %}{% endblock %}
{# ── Offcanvas Right ─────────────────────────────────────────────────────── #}
{% block offcanvas_right %}{% endblock %}
{% endblock body %} {% block app_scripts %} {{ block.super }} {% conjunto_app_scripts %} {% endblock %}