{% extends "base.html" %} {% block title %}Dashboard{% endblock %} {% block page_title %}Dashboard{% endblock %} {% block content %}

Needs Attention (cleaning > {{ stale_days }}d, playtime > {{ play_stale_days }}d, or never logged)

{% if needs_attention %}
{% for row in needs_attention %} {% endfor %}
Hutch Occupants Cleaning Playtime Actions
{{ row.hutch.name }} {% if row.residents %}
{% for r in row.residents %}{{ r.name }}{% endfor %}
{% else %} empty {% endif %}
{% if row.needs_clean %} {% if row.clean_days is none %} Never cleaned {% else %} {{ row.clean_days }}d ago {% endif %} {% else %} {{ row.hutch.date_cleaned | fmt_date }} {% endif %} {% if row.needs_play %} {% if row.play_days is none %} Never played {% else %} {{ row.play_days }}d ago {% endif %} {% else %} {{ row.hutch.last_playtime | fmt_date }} {% endif %} {% if user.role in ('staff', 'admin') %} Manage → {% endif %}
{% else %}

✓ All hutches are clean and up to date on playtime.

{% endif %}

Activity Log

{% if recent_audit %}
{% for row in recent_audit %} {% endfor %}
When User Action Section Record Changes
{{ row.entry.timestamp | fmt_date }} {{ row.username }} {{ row.entry.action }} {{ row.section }} {{ row.record_label }} {% if row.changes %}{{ row.changes | join(', ') }}{% else %}—{% endif %}
{% else %}

No activity yet.

{% endif %} {% endblock %}