{% extends "base.html" %} {% block title %}Badges ยท {{ app_name }}{% endblock %} {% block body %}

๐Ÿ… Badges

{{ pup|length }} earned by you, {{ item_count }} by your kit, of {{ rules|length }} in the catalogue.

Yours

{% for b in pup %} {{ b.icon }} {{ b.title }} {{ b.detail }}{% if b.detail and b.awarded_at %} ยท {% endif %}{{ b.awarded_at|local('%Y-%m-%d') }} {% else %}

None yet. They arrive on their own โ€” nothing here has to be claimed.

{% endfor %}
{% if by_item %}

Your kit's

{% for row in by_item %}
{{ row.item.cat_icon }} {{ row.item.name }}
{% for b in row.badges %} {{ b.icon }} {{ b.title }} {{ b.detail }} {% endfor %}
{% endfor %}
{% endif %}

The catalogue

Nothing here is claimed or bought. A rule is checked every few minutes and awards itself when it is true โ€” and a monthly badge is only ever decided after its month has ended, because a superlative about a period that is still running is a claim about however much of it has happened so far.

{% for r in rules %} {% endfor %}
badgeworn bywhat it takes
{{ r.icon }} {{ r.title }}{% if r.period %} monthly{% endif %} {{ 'you' if r.subject == 'pup' else 'a piece of kit' }} {{ r.blurb }} {% if r.slug in held %}{{ held[r.slug] }}ร—{% endif %}
{% endblock %}