feat: cleanup ui

This commit is contained in:
2026-10-06 17:57:58 +01:00
parent 0ef61b3231
commit 3f78dbb490
5 changed files with 9 additions and 154 deletions
+6 -13
View File
@@ -31,23 +31,16 @@
<input type="hidden" name="year" value="{{ year }}"><input type="hidden" name="month" value="{{ month }}">
<button class="secondary" type="submit">Aplicar rotação em {{ month_name }}</button>
</form>
<p class="muted">Cada turno automático é dado à próxima pessoa ativa a seguir à responsável pelo turno anterior desta escala, com retorno ao início da rotação. Aplicar a rotação mantém as atribuições manuais e as trocas concluídas. Recalcular substitui a atribuição de uma data, incluindo uma atribuição manual ou uma troca. Uma rotação vazia deixa os turnos automáticos sem atribuição.</p>
<form method="post" action="{{ app_path('/admin/schedules/' ~ schedule.id ~ '/generate-after') }}" class="inline-form">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<label>Depois da data<input type="date" name="after_date" value="{{ generate_after.isoformat() }}" min="1999-12-31" max="2100-12-30" required></label>
<label>Até à data<input type="date" name="through_date" value="{{ generate_through.isoformat() }}" min="2000-01-01" max="2100-12-31" required></label>
<button class="secondary" type="submit">Gerar depois da data</button>
</form>
<p class="muted">Cria os turnos em falta e atualiza as atribuições automáticas depois da data de referência, até à data final (inclusive). As atribuições manuais e as trocas concluídas são mantidas e usadas como referência.</p>
<form method="post" action="{{ app_path('/admin/schedules/' ~ schedule.id ~ '/clear-from') }}" class="inline-form">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<label>Limpar a partir de<select name="month">
<label>A partir de<select name="month">
{% for name in months %}<option value="{{ loop.index }}" {% if loop.index == month %}selected{% endif %}>{{ name }}</option>{% endfor %}
</select></label>
<label>de<input type="number" name="year" value="{{ year }}" min="2000" max="2100" required></label>
<button class="danger" type="submit">Limpar mês e seguintes</button>
<button class="danger" type="submit">Limpar turnos</button>
</form>
<p class="muted">Deixa sem atribuição os turnos <strong>automáticos</strong> a partir do início do mês e ano escolhidos, nesse mês e em todos os seguintes. Nenhum turno é apagado e as atribuições manuais e as trocas concluídas são mantidas. Use-o antes de aplicar a rotação de novo, para recalcular tudo a partir de um ponto.</p>
<p class="muted">Deixa sem atribuição os turnos <strong>automáticos</strong> do mês e ano escolhidos e de todos os seguintes. Nenhum turno é apagado e as atribuições manuais e as trocas concluídas são mantidas. Use Limpar turnos antes de Aplicar rotação, para recalcular tudo a partir de um ponto.</p>
<form method="post" action="{{ app_path('/admin/schedules/' ~ schedule.id ~ '/assignments') }}">
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
<input type="hidden" name="year" value="{{ year }}"><input type="hidden" name="month" value="{{ month }}">
@@ -112,9 +105,9 @@
{% for name in months %}<option value="{{ loop.index }}" {% if loop.index == month %}selected{% endif %}>{{ name }}</option>{% endfor %}
</select></label>
<label>de<input type="number" name="year" value="{{ year }}" min="2000" max="2100" required></label>
<button class="secondary" type="submit">Aplicar padrão a partir do mês escolhido</button>
<button class="secondary" type="submit">Aplicar padrão</button>
</form>
<p class="muted">Atualiza os turnos <strong>automáticos</strong> já existentes a partir do início do mês e ano escolhidos, em todos os meses seguintes, para refletirem o padrão acima. Use isto depois de corrigir o padrão. As atribuições manuais e as trocas concluídas são mantidas, os dias sem pessoa no padrão ficam como estão e nenhum turno é criado.</p>
<p class="muted">Atualiza os turnos <strong>automáticos</strong> já existentes do mês e ano escolhidos e de todos os seguintes, para refletirem o padrão guardado acima. As atribuições manuais e as trocas concluídas são mantidas, os dias sem pessoa no padrão ficam como estão e nenhum turno é criado.</p>
</section>
{% endif %}
-6
View File
@@ -7,12 +7,6 @@
</div>
<a class="button primary" href="{{ app_path('/admin/assign') }}">Atribuir por dia</a>
</div>
<section class="panel">
<h3>Calendário da rota</h3>
<p class="muted">Um link para partilhar com a equipa, com os turnos de toda a gente, para adicionar a qualquer calendário. Cada pessoa tem também o seu feed só com os turnos dela.</p>
<p><code>{{ calendar_feed_url }}</code></p>
<a class="button secondary" href="webcal://{{ calendar_feed_url.split('//')[-1] }}">Subscrever o calendário do bar</a>
</section>
<div class="stack gap">
{% for card in cards %}
{% set schedule = card.schedule %}