Refactor handling of active user

This commit is contained in:
2024-02-16 17:59:43 +01:00
parent ab8def6b4f
commit ea34413b3c
5 changed files with 163 additions and 148 deletions

View File

@ -1,7 +1,7 @@
{% extends 'base.jinja' %}
{% set active_page = "/race/" ~ chosenusername %}
{% set active_user = chosenusername %}
{% set active_page = "/race/" ~ activeuser.name | default("Everyone") %}
{% set active_user = activeuser %}
{% block title %}Formula 10 - Race{% endblock title %}
@ -9,7 +9,7 @@
<div class="dropdown">
<button class="btn btn-outline-danger dropdown-toggle" type="button" data-bs-toggle="dropdown"
aria-expanded="false">
{{ chosenusername }}
{% if activeuser is not none %}{{ activeuser.name }}{% else %}Everyone{% endif %}
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/race/Everyone">Everyone</a></li>
@ -30,8 +30,10 @@
<tr>
<th scope="col" rowspan="2" class="text-center" style="width: 200px;">Race</th>
{% if chosenusers | length > 0 %}
<th scope="col" colspan="{{ chosenusers | length }}" class="text-center">Call</th>
{% if activeuser is none %}
<th scope="col" colspan="{{ users | length }}" class="text-center">Call</th>
{% else %}
<th scope="col" class="text-center">Call</th>
{% endif %}
<th scope="col" rowspan="2" class="text-center" style="width: 200px;">Result</th>
@ -44,83 +46,95 @@
<tr>
<td>&nbsp;</td>
{% for user in chosenusers %}
<td class="text-center text-nowrap" style="min-width: 100px;">{{ user.name }}</td>
{% endfor %}
{% if activeuser is none %}
{% for user in users %}
<td class="text-center text-nowrap" style="min-width: 100px;">{{ user.name }}</td>
{% endfor %}
{% else %}
<td class="text-center text-nowrap" style="min-width: 100px;">{{ activeuser.name }}</td>
{% endif %}
<td>&nbsp;</td>
</tr>
{# Next Race Guess #}
{% if nextrace is not none %}
<tr class="table-light">
<td class="text-nowrap"><span class="fw-bold">{{ nextrace.id }}:</span> {{ nextrace.grandprix }}</td>
{# {% if nextrace is not none %}#}
{# <tr class="table-light">#}
{# <td class="text-nowrap">#}
{# <span class="fw-bold">{{ nextrace.id }}:</span> {{ nextrace.grandprix }}<br>#}
{# <small><span class="fw-bold">Guess:</span> P{{ nextrace.pxx }}</small>#}
{# </td>#}
{##}
{# {% for user in users %}#}
{# <td>#}
{# <form action="/guessrace/{{ nextrace.id }}/{{ user.name }}" method="post">#}
{# Driver PXX Select #}
{# {{ driver_select_with_preselect(currentselection.get(user.name).pxx.abbr if user.name in currentselection else "",#}
{# "pxxselect", "P" ~ nextrace.pxx ~ ":") }}#}
{##}
{# Driver DNF Select #}
{# <div class="mt-2">#}
{# {{ driver_select_with_preselect(currentselection.get(user.name).dnf.abbr if user.name in currentselection else "",#}
{# "dnfselect", "DNF:") }}#}
{# </div>#}
{##}
{# <input type="submit" class="btn btn-danger mt-2 w-100" value="Save">#}
{# </form>#}
{# </td>#}
{# {% endfor %}#}
{##}
{# Enter Race Result #}
{# <td>&nbsp;</td>#}
{# <td>#}
{# <form action="/enterresult/{{ nextrace.id }}" method="post">#}
{# Driver PXX Select#}
{# {{ driver_select("pxxselect", "P" ~ nextrace.pxx ~ ":") }}#}
{##}
{# Driver DNF Select#}
{# <div class="mt-2">#}
{# {{ driver_select("dnfselect", "DNF:") }}#}
{# </div>#}
{##}
{# <input type="submit" class="btn btn-danger mt-2 w-100" value="Save">#}
{# </form>#}
{# </td>#}
{# </tr>#}
{# {% endif %}#}
{% for user in chosenusers %}
<td>
<form action="/guessrace/{{ nextrace.id }}/{{ user.name }}" method="post">
{# Driver PXX Select #}
{{ driver_select_with_preselect(currentselection.get(user.name).pxx.abbr if user.name in currentselection else "",
"pxxselect", "P" ~ nextrace.pxx ~ ":") }}
{# Race Results #}
{% for raceresult in raceresults %}
<tr>
<td class="text-nowrap">
<span class="fw-bold">{{ raceresult.race.id }}:</span> {{ raceresult.race.grandprix }}<br>
<small><span class="fw-bold">Guessed:</span> P{{ raceresult.race.pxx }}</small>
</td>
{# Driver DNF Select #}
<div class="mt-2">
{{ driver_select_with_preselect(currentselection.get(user.name).dnf.abbr if user.name in currentselection else "",
"dnfselect", "DNF:") }}
</div>
{% if activeuser is not none %}{% set users = [activeuser] %}{% endif %}
{% for user in users %}
<td class="text-center text-nowrap">
{% if (raceresult.race_id in guesses) and (user.name in guesses.get(raceresult.race_id)) %}
{% set pxx = guesses.get(raceresult.race_id).get(user.name).pxx.abbr %}
{% set dnf = guesses.get(raceresult.race_id).get(user.name).dnf.abbr %}
<input type="submit" class="btn btn-danger mt-2 w-100" value="Save">
</form>
<ul class="list-group list-group-flush">
<li class="list-group-item {% if pxx == raceresult.pxx.abbr %}text-success fw-bold{% endif %}">
P{{ raceresult.race.pxx }}: {{ pxx }}</li>
<li class="list-group-item {% if dnf == raceresult.dnf.abbr %}text-success fw-bold{% endif %}">
DNF: {{ dnf }}</li>
</ul>
{% endif %}
</td>
{% endfor %}
{# Enter Race Result #}
<td>
<form action="/enterresult/{{ nextrace.id }}" method="post">
{# Driver PXX Select #}
{{ driver_select("pxxselect", "P" ~ nextrace.pxx ~ ":") }}
{# Driver DNF Select #}
<div class="mt-2">
{{ driver_select("dnfselect", "DNF:") }}
</div>
<input type="submit" class="btn btn-danger mt-2 w-100" value="Save">
</form>
<td class="text-center text-nowrap">
<ul class="list-group list-group-flush">
<li class="list-group-item">P{{ raceresult.race.pxx }}: {{ raceresult.pxx.abbr }}</li>
<li class="list-group-item {% if raceresult.dnf.abbr == 'NON' %}text-muted{% endif %}">
DNF: {{ raceresult.dnf.abbr }}</li>
</ul>
</td>
</tr>
{# Race Results #}
{% for raceresult in raceresults %}
<tr>
<td class="text-nowrap"><span
class="fw-bold">{{ raceresult.race.id }}:</span> {{ raceresult.race.grandprix }}</td>
{% for user in chosenusers %}
<td class="text-center text-nowrap">
{% if (raceresult.race_id in pastguesses) and (user.name in pastguesses.get(raceresult.race_id)) %}
{% set pxx = pastguesses.get(raceresult.race_id).get(user.name).pxx.abbr %}
{% set dnf = pastguesses.get(raceresult.race_id).get(user.name).dnf.abbr %}
<ul class="list-group list-group-flush">
<li class="list-group-item {% if pxx == raceresult.pxx.abbr %}text-success fw-bold{% endif %}">
P{{ raceresult.race.pxx }}: {{ pxx }}</li>
<li class="list-group-item {% if dnf == raceresult.dnf.abbr %}text-success fw-bold{% endif %}">
DNF: {{ dnf }}</li>
</ul>
{% endif %}
</td>
{% endfor %}
<td class="text-center text-nowrap">
<ul class="list-group list-group-flush">
<li class="list-group-item">P{{ raceresult.race.pxx }}: {{ raceresult.pxx.abbr }}</li>
<li class="list-group-item {% if raceresult.dnf.abbr == 'NON' %}text-muted{% endif %}">
DNF: {{ raceresult.dnf.abbr }}</li>
</ul>
</td>
</tr>
{% endfor %}
{% endif %}
{% endfor %}
</tbody>
</table>