trotFunky
afdac98dea
In preparation to adding a new page, move the week-related included files in a specific sub-folder. Change includes accordingly.
142 lines
5.6 KiB
Text
142 lines
5.6 KiB
Text
<!DOCTYPE html>
|
|
<html lang="en">
|
|
{% set title = "Vérités Fabula Ultima" %}
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>{{ title }}</title>
|
|
<link href="/static/style.css" rel="stylesheet"/>
|
|
<link href="/static/favicon.ico" rel="icon"/>
|
|
{% if user.logged_in == true and not user.is_admin %}
|
|
<script defer="defer" type="text/javascript" src="/static/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="/static/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 %}
|
|
|
|
{# Remove the form if all votes are locked, to reduce confusion. #}
|
|
{% set lock_truth_form = user.votes | length + 1 == truths | length and week_data.is_last_week != true %}
|
|
|
|
<body>
|
|
<div class="top_bar">
|
|
<h1>{{ title }}</h1>
|
|
{% if user.logged_in == true %}
|
|
<form class="login" id="logout" action="/{{ week_data.number }}/logout" method="POST">
|
|
Connecté en tant que <b>{{ user.name }}</b>
|
|
<button form="logout">Déconnecter</button>
|
|
</form>
|
|
{% else %}
|
|
<form class="login" id="login" action="/{{ week_data.number }}/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 and not lock_truth_form %}
|
|
<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 "weeks/editable_truth" %}
|
|
{% else %}
|
|
{% include "weeks/truth" %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if user.logged_in == true and user.is_admin == false and not lock_truth_form %}
|
|
<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 "weeks/truth_editor" %}
|
|
</form>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="graph">
|
|
<div>
|
|
<canvas id="vote_chart"></canvas>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|