Files
dice-counter/templates/_sheet.html
T
gitea-actionsandClaude Opus 5 bcbbede258 web: zadávání z telefonu a zápisník na notebooku
Flask, server-rendered HTML, formuláře přes POST/redirect/GET.
Žádný build step, žádný JS framework.

- / zakládá hru výběrem známých hráčů v pořadí u stolu
- /game/<id> je zadávací pohled: kdo je na tahu, skóre, x/xx,
  průběžné pořadí, vrácení posledního zápisu
- /board/<id> je zápisník po kolech; tahy před vynulováním se škrtnou
  červeně, sloupec hráče na tahu drží zvýrazňovač
- tabule se doptává serveru každé dvě vteřiny a vyměňuje jen hlavičku
  a zápisník, QR s adresou zůstává mimo obnovovanou část
- adresa pro telefon se hledá za běhu, QR se skládá ze čtverečků
  přímo do SVG, takže není potřeba Pillow
- 16 funkčních testů přes Flask test client

Vizuálně to stojí na tom, co appka nahrazuje: čtverečkovaný papír,
modrá propiska zapisuje, červená škrtá, zvýrazňovač drží tah.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 19:01:08 +02:00

58 lines
1.6 KiB
HTML

{% if winner %}
<div class="win">
<p class="eyebrow">Konec hry</p>
<h2>{{ winner }}</h2>
<p>Vyhrává s {{ totals[winner]|cislo }} body z cílových {{ game.final_score|cislo }}.</p>
</div>
{% endif %}
<div class="sheet-wrap">
<table class="sheet">
<thead>
<tr>
<th class="label">Kolo</th>
{% for name in game.names %}
<th class="{{ 'marked' if name == current }}">{{ name }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for row in rows %}
<tr>
<td class="label">{{ row.round }}</td>
{% for cell in row.cells %}
<td class="{{ 'marked' if game.names[loop.index0] == current }}
{{ 'struck' if cell.struck }} {{ 'wiped' if cell.reset }}">
{%- if cell.value is none -%}
<span class="empty">·</span>
{%- elif cell.reset -%}
0<small>vynulováno</small>
{%- else -%}
{{ cell.value|cislo }}
{%- endif -%}
</td>
{% endfor %}
</tr>
{% else %}
<tr>
<td class="label">1</td>
{% for name in game.names %}
<td class="{{ 'marked' if name == current }}"><span class="empty">·</span></td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td class="label">Celkem</td>
{% for name in game.names %}
<td class="{{ 'marked' if name == current }}">
{{ totals[name]|cislo }}
{%- if streaks[name] %} <span class="ticks">{{ '✕' * streaks[name] }}</span>{% endif %}
</td>
{% endfor %}
</tr>
</tfoot>
</table>
</div>