{# Reusable per-subject event card. Caller passes: - ``events`` -- iterable of bty.web._events_log.Event - ``title`` -- card title (e.g. "Recent activity") - ``link_to_full`` -- /ui/events URL (with subject filter applied) so the operator can drill into the full timeline. Renders nothing if ``events`` is empty so the parent page doesn't grow an empty card. #} {% if events %}
{{ title }} {% if link_to_full %} full timeline {% endif %}
{% for e in events %} {% endfor %}
When Kind Summary
{{ e.ts }} {% set family = e.kind.split('.')[0] %} {% set badge_map = { 'machine': 'bg-info text-dark', 'image': 'bg-primary', 'catalog': 'bg-secondary', 'boot': 'bg-warning text-dark', 'settings': 'bg-dark', } %} {% set badge = badge_map.get(family, 'bg-light text-dark border') %} {{ e.kind }} {{ e.summary }}
{% endif %}