{# Admin chrome shell. The nav itself lives in `_admin_nav.html`; page chrome (CSS link, flash slot, htmx script) lives here. #} {% block title %}bragi admin{% endblock %} {# notices_css_url is injected by _inject_admin_notices (admin.py) only when the admin_notices blueprint is registered. When the plugin is disabled the variable is None and the link is omitted. #} {% if notices_css_url %} {% endif %} {% block head_extra %}{% endblock %} {% include "admin/_admin_nav.html" %}
{% with messages = get_flashed_messages(with_categories=true) %} {% for category, msg in messages %}
{{ msg }}
{% endfor %} {% endwith %} {# Sticky notice rail: shown on per-site pages (g.current_site is set) when action_required or status notices are active. The `ignore missing` guard keeps the page renderable when the admin_notices plugin is disabled and the template is absent. #} {% if g.current_site %} {% include "admin/_notice_rail.html" ignore missing %} {% endif %} {% block content %}{% endblock %}
{# htmx, CDN-hosted for v1. Self-hosted bundle (and a Subresource Integrity hash) is a follow-up; the admin is gated behind auth so the surface is the operator's own browser, not the public. #}