{% extends "base.html" %} {% from "_macros.html" import status_pill %} {% block title %}Holds — {{ library_name() }}{% endblock %} {% block content %}
All active holds across the library. Filter by status, branch, patron or work. Suspended holds keep their queue position; the pickup shelf is the "Pickup shelf" status filter.
{{ total }} matching hold{{ '' if total == 1 else 's' }}{% if status == 'available' %} · on the pickup shelf now{% endif %}
{% if holds %}| # | Placed | Patron | Work | Status | Branch | Suspended | Expires |
|---|---|---|---|---|---|---|---|
| {{ positions.get(h.id) or "—" }} | {{ h.placed_at.strftime("%Y-%m-%d") }} |
{{ h.patron.full_name }}
{{ h.patron.library_card_number }}
|
{{ h.work.title }} | {{ status_pill(h.status) }} | {{ h.branch.code if h.branch else "—" }} |
{% if h.suspended_until %}
Until {{ h.suspended_until.isoformat() }}
{% if h.suspended_reason %} {{ h.suspended_reason }}{% endif %} {% else %} — {% endif %} |
{{ h.expires_at.strftime("%Y-%m-%d") if h.expires_at else "—" }} |
No holds match these filters.
{% endif %} {% endblock %}