{% extends 'base.html' %} {% block title %}Services{% endblock %} {% block content %} {# ── Season banner ─────────────────────────────────────────────────────── #}
{{ season.name }} Planning to {{ horizon.strftime('%-d %B %Y') }}
↓ Season PDF
{# ── Upcoming services ─────────────────────────────────────────────────── #}

Upcoming Services

{% if services %}
{% for svc in services %} {% endfor %}
Date Time Service Hymns
{{ svc.day.strftime('%a %-d %b') }} {{ svc.day.strftime('%Y') }} {% if svc.time %} {{ svc.time.strftime('%H:%M') }} {% else %} {% endif %} {{ svc.type }} {{ svc.hymns_filled }}/{{ svc.total_slots }} Edit
{% else %}

No services scheduled up to {{ horizon.strftime('%-d %B %Y') }}. Add one below.

{% endif %}
{# ── Season dispatch ───────────────────────────────────────────────────── #}

Season Dispatch

Send the hymn plan for {{ next_season.name }} ({{ next_season.start.strftime('%-d %B') }}–{{ next_season.end.strftime('%-d %B %Y') }}) to the configured recipients as a single PDF. Services already marked as emailed will not be included.

{# ── Add service ───────────────────────────────────────────────────────── #}

Add Service

{% endblock %}