From 4e1b13dc85ac0be1c9d71edb6e83e1a623c3680a Mon Sep 17 00:00:00 2001 From: trotFunky Date: Fri, 26 Jul 2024 11:29:24 +0100 Subject: [PATCH 01/24] vote: Fix logic to hide graph if week is active The goal is to not display the graph until the active week has been changed, but the logic retuned early if it wasn't. Simplify the query and check directly if the current week is the last one, if so do not show the graph. --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/vote.rs | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5636714..df623d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -578,7 +578,7 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fabula_votes_server" -version = "1.2.0" +version = "1.2.1" dependencies = [ "argon2", "blake2", diff --git a/Cargo.toml b/Cargo.toml index c900b9a..2ec545f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "fabula_votes_server" license = "MPL-2.0" readme = "README.md" authors = ["trotFunky"] -version = "1.2.0" +version = "1.2.1" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/vote.rs b/src/vote.rs index f3becde..6795167 100644 --- a/src/vote.rs +++ b/src/vote.rs @@ -113,8 +113,7 @@ pub async fn fetch_vote_data(week: u8, mut db: Connection) -> Opti let vote_count = raw_votes.iter().fold(0, |count, votes| {count + votes.votes}); // Only show the graph if we have all the votes and this is not the last week. // FIXME: Make the 42 not hardcoded - if vote_count < 42 || week != sqlx::query_scalar("SELECT number from Weeks WHERE number == $1 AND is_last_week == 1;") - .bind(week) + if vote_count < 42 || week == sqlx::query_scalar("SELECT number from Weeks WHERE is_last_week == 1;") .fetch_optional(&mut **db) .await.unwrap_or(Some(0)).unwrap_or(0) { return None; From ba98c3be841b0188f970753e18f16000af49ef03 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Fri, 26 Jul 2024 17:55:39 +0100 Subject: [PATCH 02/24] index: Remove the form if all votes were cast Currently, if all votes are cast and the week is locked the selections are disabled but the form and button still exist and might cause confusion. Remove them if all votes are cast and we are not on the last week anymore. --- templates/index.html.tera | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/templates/index.html.tera b/templates/index.html.tera index c2f3afa..d6edfa3 100644 --- a/templates/index.html.tera +++ b/templates/index.html.tera @@ -36,6 +36,9 @@ {% 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 %} +

{{ title }}

@@ -76,7 +79,7 @@ {% endif %}
- {% if user.logged_in == true and user.is_admin == false %} + {% if user.logged_in == true and user.is_admin == false and not lock_truth_form %}
{% endif %} @@ -101,7 +104,7 @@ {% endif %} {% endfor %} - {% if user.logged_in == true and user.is_admin == false %} + {% if user.logged_in == true and user.is_admin == false and not lock_truth_form %}
+
{% else %}