{% load static %} {% block title %}Redea Social{% endblock %} {% block extra_head %}{% endblock %} {% csrf_token %} {% comment %} Global htmx error surface. htmx does not swap non-2xx responses, so a server's error text would otherwise be silently dropped (only a console error remains). This listener reads that text (XSS-safe via DOMParser) and either routes it to a form's inline container (via data-inline-error="#selector") or shows the dismissible toast below. An element that surfaces every one of its own failures opts out with data-no-error-toast (the composer form does, via onFormSaved). That opt-out is checked on the requesting element ONLY, never on its ancestors: htmx reports the element the request came from, so a subtree check would also silence nested controls that have no handler of their own — the composer's Clone button and template picker sit inside its form and would fail completely silently. Put the attribute on each element that really does handle its own errors. {% endcomment %} {% if user.is_authenticated %}
{% with current_ws=request.workspace %} {% if current_ws %} {% if current_ws.icon %} {% else %}
{{ current_ws.name|make_list|first|upper }}
{% endif %} {{ current_ws.name }} {% else %}
P
Redea Social {% endif %} {% endwith %}
{% block page_header %}{% endblock %} {% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %}
{% block content %}{% endblock %}
{% include "onboarding/partials/_checklist.html" %} {% else %}
{% block auth_content %}{% endblock %}
{% endif %} {% if request.workspace %} {% endif %} {% block extra_js %}{% endblock %} {% if can_create_workspace %}

Create workspace

{% csrf_token %}
{% endif %}