trotFunky
e08a46af3a
Implement a way for admins to introduce new weeks and set them as the last active one. The last active week is the last one that is accessible to players, and will also prevent the graph from being displayed. Implement arrows for navigating between the weeks in the HTML.
135 lines
5.1 KiB
Text
135 lines
5.1 KiB
Text
<!DOCTYPE html>
|
|
<html lang="en">
|
|
{% set title = "Vérités Fabula Ultima" %}
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>{{ title }}</title>
|
|
<link href="/style.css" rel="stylesheet"/>
|
|
{% if user.logged_in == true and not user.is_admin %}
|
|
<script defer="defer" type="text/javascript" src="/vote_handler.js"></script>
|
|
{% endif %}
|
|
<script defer="defer" type="application/javascript" src="https://cdn.jsdelivr.net/npm/chart.js@4.4.3/dist/chart.umd.min.js"></script>
|
|
<script defer="defer" type="text/javascript" src="/vote_chart.js"></script>
|
|
</head>
|
|
|
|
{#{% import "week_change_arrows" as week_macro %}#}
|
|
{# For some reason the import does not work ? Figure it out at some point... #}
|
|
{%- macro display(display_character, to, enabled) -%}
|
|
{%- set class = "week_change" -%}
|
|
{%- if enabled == true %}
|
|
{% set target = ("href=/" ~ to) %}
|
|
{%- else -%}
|
|
{% set class = class ~ " week_change_hidden" -%}
|
|
{% set target = "" %}
|
|
{%- endif -%}
|
|
<a {{ target }} class="{{ class }}">{%- if enabled == true -%}{{- display_character -}}{%- endif -%}</a>
|
|
{%- endmacro display -%}
|
|
|
|
|
|
{% set back_arrow_enabled = week_data.number > 1 %}
|
|
{% set next_arrow_enabled = (week_data.is_last_week != true or user.is_admin == true) %}
|
|
{% set next_arrow_href = (week_data.number + 1) %}
|
|
{% if user.is_admin == true %}
|
|
{% set next_arrow_href = next_arrow_href ~ "/create" %}
|
|
{% set next_arrow_chara = '⥅' %}
|
|
{% else %}
|
|
{% set next_arrow_chara = '⟹' %}
|
|
{% endif %}
|
|
|
|
<body>
|
|
<div class="top_bar">
|
|
<h1>{{ title }}</h1>
|
|
{% if user.logged_in == true %}
|
|
<p>Connecté en tant que <b>{{ user.name }}</b></p>
|
|
{% else %}
|
|
<form class="login" id="login" action="/login" method="POST">
|
|
<label>Pseudo <input form="login" type="text" name="name"/></label>
|
|
<label>Mot de passe <input form="login" type="password" name="password"/></label>
|
|
<button form="login">Se connecter</button>
|
|
</form>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<h2>{{- self::display(display_character='⟸', to=(week_data.number - 1), enabled=back_arrow_enabled) }}
|
|
Semaine {{ week_data.number }}
|
|
{{- self::display(display_character=next_arrow_chara, to=next_arrow_href, enabled=next_arrow_enabled) -}}</h2>
|
|
<div class="page_body">
|
|
<div class="truth_list">
|
|
{% if user.is_admin == true and week_data.is_last_week != true %}
|
|
<form action="/{{ week_data.number }}/set_last" method="post">
|
|
<button>
|
|
Définir comme dernière semaine active
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
<div class="week_intro">
|
|
{{ week_data.rendered_text | safe }}
|
|
{%- if user.is_admin == true -%}
|
|
<hr/>
|
|
<form action="/{{ week_data.number }}/edit" method="post">
|
|
<textarea class="editor" name="raw_intro">
|
|
{{- week_data.raw_text -}}
|
|
</textarea>
|
|
<button>
|
|
Modifier l'introduction
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
</div>
|
|
{% if user.logged_in == true and user.is_admin == false %}
|
|
<form id="truths" action="/{{ week_data.number }}/vote" method="POST">
|
|
{% endif %}
|
|
|
|
{# Truths start at 1 but the array starts at 0 #}
|
|
{% set index_delta = 1 %}
|
|
{% for truth in truths %}
|
|
{#
|
|
The truths are in an ordered array, but one of them might be the user's.
|
|
In this case, we need to stop the array index from incrementing if the current
|
|
truth is the user's, as they cannot have voted for themselves, leading to one
|
|
less votes than there are truths.
|
|
#}
|
|
{%- if truth.author_id == user.id -%}
|
|
{%- set_global index_delta = 2 -%}
|
|
{% endif %}
|
|
{% set truth_index = truth.number - index_delta %}
|
|
|
|
{% if user.is_admin == true %}
|
|
{% include "editable_truth" %}
|
|
{% else %}
|
|
{% include "truth" %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if user.logged_in == true and user.is_admin == false %}
|
|
<br/>
|
|
<button form="truths">
|
|
{%- if user.logged_in == true and user.has_week_vote == true -%}
|
|
Changer de vote
|
|
{% else %}
|
|
À voter !
|
|
{% endif %}
|
|
</button>
|
|
</form>
|
|
{% endif %}
|
|
|
|
{# If admin, show an additional box for creating a new Truth. #}
|
|
{% if user.is_admin == true %}
|
|
<div class="individual_truth">
|
|
<h3>Nouvelle vérité</h3>
|
|
<form action="/{{ week_data.number }}/new_truth" method="POST">
|
|
{% include "truth_editor" %}
|
|
</form>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="graph">
|
|
<div>
|
|
<canvas id="vote_chart"></canvas>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|