{% extends "base.html" %} {% block content %}
One page per schedule type. The night schedule is fixed and repeats every month; Saturday and Sunday lunch are independent rotations. Existing generated assignments are not rewritten when a rotation changes.
{{ card.kind_label }}{% if schedule.label_time %} · {{ schedule.label_time }}{% endif %}{% if not schedule.is_active %} · inactive{% endif %}
Next dates
{{ card.dates | join(' · ') }}
Rotation: {{ card.rotation_names | join(', ') if card.rotation_names else 'no members yet' }}
{% endif %}python -m app.cli init-db to seed the defaults.