25 lines
1.2 KiB
HTML
25 lines
1.2 KiB
HTML
{% extends "base.html" %}
|
|
{% block content %}
|
|
<div class="page-head"><div><h1>Schedules</h1><p class="muted">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.</p></div></div>
|
|
<div class="stack gap">
|
|
{% for card in cards %}
|
|
{% set schedule = card.schedule %}
|
|
<section class="panel">
|
|
<div class="row between wrap gap">
|
|
<div>
|
|
<h2>{{ schedule.name }}</h2>
|
|
<p class="muted">{{ card.kind_label }}{% if schedule.label_time %} · {{ schedule.label_time }}{% endif %}{% if not schedule.is_active %} · inactive{% endif %}</p>
|
|
</div>
|
|
<a class="button primary" href="/admin/schedules/{{ schedule.id }}">Configure</a>
|
|
</div>
|
|
{% if card.kind == 'rotation' %}
|
|
<p class="muted">Next dates</p>
|
|
<p class="date-list">{{ card.dates | join(' · ') }}</p>
|
|
<p class="muted">Rotation: {{ card.rotation_names | join(', ') if card.rotation_names else 'no members yet' }}</p>
|
|
{% endif %}
|
|
</section>
|
|
{% else %}
|
|
<div class="empty">No schedules yet. Run <code>python -m app.cli init-db</code> to seed the defaults.</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endblock %} |