{# 看板ボードの本体(htmx で部分差し替えされる単位)。 3 列(やり忘れ / 今日 / 実行中)+ 4 セクション(卒業判定 / 未来期日 / 期日未設定 / archive 候補)。 各セクションヘッダに「全選択 + 一括ボタン」を出す(plan_kanban-bulk-edit §C2)。 #} {# 共通の一括操作ボタンセット(マクロ化)。section=セクション名、ops=ボタン定義リスト op.kind="label-picker" は section-bulk ではなく section-open-label-picker を出す (クリックで既存 _label_picker.html を開き、選んだ state で列内全カードを一括 status 変更)。 #} {% macro section_actions(section, ops) %} {% for op in ops %} {% if op.kind == "label-picker" %} {% else %} {% endif %} {% endfor %} {% endmacro %} {# セクション別ボタン定義(plan §C2 のセクション別微調整に従う) #} {# 2026-06-23 改修: 独立ボタン「着手」「廃止」「完了」を全廃。状態変更はすべて 「ラベル変更▾」ピッカー(_label_picker.html)に集約。[廃止] [完了] も同ピッカーから選ぶ。 #} {% set OPS_DEFAULT = [ {"kind": "due", "op": "due", "spec": "+1d", "label": "+1d", "title": "全て +1 日先送り"}, {"kind": "due", "op": "due", "spec": "+1w", "label": "+1w", "title": "全て +1 週先送り"}, {"kind": "label-picker", "label": "ラベル変更▾", "title": "全カードを別のラベル ([計画]/[実行中]/[様子見]/[保留]/[完了]/[廃止]) に一括変更"}, ] %} {% set OPS_GRADUATE = OPS_DEFAULT %} {% set OPS_ARCHIVE = [ {"kind": "archive", "op": "archive", "label": "archive へ", "title": "全て archive 配下へ移送"}, ] %}

🔴 やり忘れ {{ data.counts.overdue }} {{ section_actions("overdue", OPS_DEFAULT) }}

    {% for card in data.cols.overdue %}{% include "_card.html" %}{% endfor %}

🟡 今日 {{ data.counts.today }} {{ section_actions("today", OPS_DEFAULT) }}

    {% for card in data.cols.today %}{% include "_card.html" %}{% endfor %}

🟢 実行中 {{ data.counts.active }} {{ section_actions("active", OPS_DEFAULT) }}

    {% for card in data.cols.active %}{% include "_card.html" %}{% endfor %}
▼ 卒業判定([様子見] かつ overdue_graduate) {{ data.counts.graduate }} {{ section_actions("graduate", OPS_GRADUATE) }}
    {% for card in data.cols.graduate %}{% include "_card.html" %}{% endfor %}
▶ 未来期日 {{ data.counts.future }} {{ section_actions("future", OPS_DEFAULT) }}
    {% for card in data.cols.future %}{% include "_card.html" %}{% endfor %}
▶ 期日未設定 {{ data.counts.no_due }} {{ section_actions("no_due", OPS_DEFAULT) }}
    {% for card in data.cols.no_due %}{% include "_card.html" %}{% endfor %}
▶ archive 候補([完了]/[廃止]) {{ data.counts.archivable }} {{ section_actions("archivable", OPS_ARCHIVE) }}
    {% for card in data.cols.archivable %}{% include "_card.html" %}{% endfor %}