{# Partial: the read-only kanban board. Returned standalone by GET /board so AlpineAJAX can refresh just this fragment. The id matches the x-target used by triggering elements. Components: PenguinUI-style cards (https://www.penguinui.com/components/card) and badges (https://www.penguinui.com/components/badge). #} {% set columns = [("todo", "To do"), ("in_progress", "In progress"), ("done", "Done")] %}
{% for key, label in columns %} {# ── Column ────────────────────────────────────────────────────── #}
{# Column header #}

{{ label }}

{# PenguinUI soft badge — count pill #} {{ board[key] | length }}
{# Task cards #}
{% if not board[key] %}

{% else %} {% for task in board[key] %} {# PenguinUI-style card:
wrapper, inner content div #}
{# Task name #}

{{ task.name }}

{# Workflow badge — PenguinUI badge with indicator dot #}
{{ task.workflow_name }}
{# Current step (only when not done) #} {% if task.status != "done" and task.current_step_name %}

step {{ task.current_step_name }}

{% endif %} {# Progress notes #} {% if task.progress_notes %}

{{ task.progress_notes }}

{% endif %}
{% endfor %} {% endif %}
{% endfor %}