{# Inner Kanban columns — extracted from pipeline/index.html so the SSE-driven pipeline.board_fragment route can re-render the board live. Required context: columns (list of dicts) — see pipeline._build_columns. NOTE: the page re-initialises SortableJS on htmx:afterSettle after this fragment swaps in (the .kanban-column-body bindings are torn down by the innerHTML swap and must be re-attached). #} {% for col in columns %}
{{ col.label }} {{ col.jobs | length }}
{% if col.status == 'rejected' %} {% else %}
{% for job in col.jobs %} {% include "pipeline/_card.html" %} {% endfor %}

Empty

{% endif %}
{% endfor %}