{% load static i18n statici18n conjunto %} {% get_current_language as LANGUAGE_CODE %} {% comment %} Slim, generic base template. Contains only the document shell: , ,
with CSS hooks, and with CSRF, scripts, modal and toast slots. It carries no topbar, sidebar, canvas or statusbar. Use this as the starting point for public / marketing / chrome-less pages. For the full application layout (topbar + sidebar + canvas + statusbar + offcanvas) extend ``conjunto/app_base.html`` instead. {% endcomment %} {% comment %} HTMX configuration. Two overrides on top of the htmx 2.x defaults: - ``disableInheritance: true`` — every ``hx-*`` must be declared on the element that uses it; ancestors do not silently leak ``hx-target``, ``hx-swap``, ``hx-select``, etc. into descendants. Prevents the whole class of "modal opens but is empty because the wrapper's hx-select was inherited" bugs. - ``responseHandling`` — swap 422 responses (form validation errors). Without this, ``ConjuntoLoginView.form_invalid`` and every modal form that returns 422 on validation failure would silently produce no UI change because htmx 2.x default drops 4xx/5xx bodies. The 422 entry has to come *before* the generic ``[45]..`` entry — htmx walks the list top-to-bottom and stops at the first match. Other 4xx/5xx still drop (errors that the page is not prepared to render in-place). {% endcomment %} {# ``document_title_body`` lets a downstream base swap the title body #} {# wholesale (e.g. medux substitutes the active patient name) without #} {# every leaf template having to opt in. Default delegates to the #} {# usual ``title`` block leaves already override. #}