{# doto-list-email.html - Template for doto task list as a 3-pane email layout #} {# Context variables: - columns: List of (status_value, display_label) pairs, in tree order. - tree: Dict mapping status_value -> list of DotoTask objects grouped under that status node (left pane). - tasks: Flat list of all DotoTask objects (top-right list pane). - task_links: Dict mapping task.id -> href of the task box (Feature 5). - icon_mode: Effective icon mode ("icon" | "icon-text" | "text"). - visible_tasks: Resolved number of list rows to keep visible at once in the scrollable top-right list pane (0 = show all / no cap). Emitted as data-doto-visible-tasks and the --doto-visible-tasks CSS custom property so the CSS can compute the pane's max-height. All tasks still render. Available filters: - row_classes: Get CSS classes for a task. Panes: 1. Left — task tree grouped by status (collapsible status nodes). 2. Top-right — the flat task list. 3. Bottom-right — the selected task's detail payload (one per task; shown when a tree node or list row is selected). Client-side nature: Selecting a tree node filters the list; selecting a list row populates the detail pane. Both are handled by the vendored, dependency-free doto-views.js. When JS is unavailable the markup degrades gracefully: all three panes render statically (the first task's detail is shown by default via CSS). A child theme can fully re-author this file via /_doto/templates/html/. #}
{%- for status, label in columns %}
{%- endfor %}
    {%- for task in tasks %}
  • {{ task.id }} {{ task.title }} {{ task.status }}
  • {%- endfor %}
{%- for task in tasks %} {%- set href = (task_links.get(task.id) if task_links is defined else '#' ~ task.id) or ('#' ~ task.id) %}

{{ task.id }}: {{ task.title }}

Priority
{{ task.priority }}
Status
{{ task.status }}
{%- if task.assignee %}
Assignee
{{ task.assignee }}
{%- endif %} {%- if task.due %}
Due
{{ task.due | display_date }}
{%- endif %} {%- if task.tags %}
Tags
{% for tag in task.tags %}{{ tag }}{% endfor %}
{%- endif %}
{%- if task.body %}
{{ task.body }}
{%- endif %}
{%- endfor %}