{# Build groups: categories with messages first, then uncategorized #}
{% set ns = namespace(uncategorized=[]) %}
{% for cat in categories %}
{% set cat_messages = messages | selectattr('category_id', 'equalto', cat.id) | list %}
{% if cat_messages %}
{{ cat.name }}
{{ cat_messages | length }}
{% for m in cat_messages %}
{{ _message_row(m) }}
{% endfor %}
{% endif %}
{% endfor %}
{# Uncategorized section #}
{% set uncategorized = messages | selectattr('category_id', 'none') | list %}
{% if uncategorized %}
Uncategorized
{{ uncategorized | length }}
{% for m in uncategorized %}
{{ _message_row(m) }}
{% endfor %}
{% endif %}
{% if not messages %}
No predefined messages yet. Click "New Message" to create one, or Sync to import from Addons.