- FastAPI + SQLite, serverseitig gerenderte Templates, mobil-zuerst - Admin-Passwort, einseitige Ausschlüsse, eingefrorene Auslosung - Teilnehmer sehen Ergebnis per Cookie; Einmal-Recovery-Links bei Verlust - Docker/podman-tauglich (Entrypoint mit Privilegien-Drop, SELinux-:z) - Unit-Tests für Auslosung, E2E-Testskript (30 Checks)
18 lines
652 B
HTML
18 lines
652 B
HTML
{% extends "base.html" %}
|
||
{% block title %}Admin-Login – {{ room.name }}{% endblock %}
|
||
{% block content %}
|
||
<h1 class="room-title">{{ room.name }}</h1>
|
||
<section class="card">
|
||
<h2>Admin-Bereich 🔑</h2>
|
||
{% if error %}<div class="alert alert-error" role="alert">Das Passwort war leider falsch.</div>{% endif %}
|
||
<form method="post" action="/r/{{ room.code }}/admin/login" class="stack">
|
||
<label>
|
||
Admin-Passwort
|
||
<input type="password" name="password" required autofocus
|
||
autocomplete="current-password">
|
||
</label>
|
||
<button type="submit" class="btn btn-primary">Anmelden</button>
|
||
</form>
|
||
</section>
|
||
{% endblock %}
|