rowt/src/tera/stat.rs

64 lines
1.9 KiB
Rust
Raw Normal View History

2023-07-24 20:56:46 +02:00
use rocket::{get, routes, Route, State};
use rocket_dyn_templates::{context, Template};
use sqlx::SqlitePool;
2023-10-01 14:35:04 +02:00
use crate::model::{
2024-04-06 15:27:35 +02:00
stat::{self, BoatStat, Stat},
2024-04-17 13:51:47 +02:00
user::{DonauLinzUser, UserWithRolesAndNotificationCount},
2023-10-01 14:35:04 +02:00
};
2023-07-24 20:56:46 +02:00
2023-10-01 20:50:23 +02:00
use super::log::KioskCookie;
2024-04-06 15:27:35 +02:00
#[get("/boats", rank = 2)]
async fn index_boat(db: &State<SqlitePool>, user: DonauLinzUser) -> Template {
let stat = BoatStat::get(db).await;
2023-10-31 16:07:15 +01:00
let kiosk = false;
Template::render(
"stat.boats",
2024-04-17 13:51:47 +02:00
context!(loggedin_user: &UserWithRolesAndNotificationCount::from_user(user.into(), db).await, stat, kiosk),
2023-10-31 16:07:15 +01:00
)
}
2024-04-06 15:27:35 +02:00
#[get("/boats")]
async fn index_boat_kiosk(db: &State<SqlitePool>, _kiosk: KioskCookie) -> Template {
let stat = BoatStat::get(db).await;
2023-10-31 16:07:15 +01:00
let kiosk = true;
Template::render("stat.boats", context!(stat, kiosk, show_kiosk_header: true))
}
2023-11-18 12:21:37 +01:00
#[get("/?<year>", rank = 2)]
2024-01-10 14:08:15 +01:00
async fn index(db: &State<SqlitePool>, user: DonauLinzUser, year: Option<i32>) -> Template {
2023-11-18 12:21:37 +01:00
let stat = Stat::people(db, year).await;
2024-03-20 13:34:21 +01:00
let club_km = Stat::sum_people(db, year).await;
2023-12-23 15:26:49 +01:00
let guest_km = Stat::guest(db, year).await;
2024-01-10 14:08:15 +01:00
let personal = stat::get_personal(db, &user).await;
2023-10-01 20:50:23 +02:00
let kiosk = false;
Template::render(
2023-10-31 16:07:15 +01:00
"stat.people",
2024-04-17 13:51:47 +02:00
context!(loggedin_user: &UserWithRolesAndNotificationCount::from_user(user.into(), db).await, stat, personal, kiosk, guest_km, club_km),
2023-10-01 20:50:23 +02:00
)
}
2023-11-18 12:21:37 +01:00
#[get("/?<year>")]
async fn index_kiosk(db: &State<SqlitePool>, _kiosk: KioskCookie, year: Option<i32>) -> Template {
let stat = Stat::people(db, year).await;
2024-03-20 13:34:21 +01:00
let club_km = Stat::sum_people(db, year).await;
2023-12-23 15:26:49 +01:00
let guest_km = Stat::guest(db, year).await;
2023-10-01 20:50:23 +02:00
let kiosk = true;
2023-07-24 20:56:46 +02:00
2023-10-31 16:07:15 +01:00
Template::render(
"stat.people",
2024-03-20 13:34:21 +01:00
context!(stat, kiosk, show_kiosk_header: true, guest_km, club_km),
2023-10-31 16:07:15 +01:00
)
2023-07-24 20:56:46 +02:00
}
pub fn routes() -> Vec<Route> {
2023-10-31 16:07:15 +01:00
routes![index, index_kiosk, index_boat, index_boat_kiosk]
2023-07-24 20:56:46 +02:00
}
#[cfg(test)]
mod test {}