Merge pull request 'staging' (#342) from staging into main
Reviewed-on: #342
This commit is contained in:
commit
c3965c9528
@ -19,6 +19,7 @@ use tera::Context;
|
|||||||
|
|
||||||
use crate::model::{
|
use crate::model::{
|
||||||
notification::Notification,
|
notification::Notification,
|
||||||
|
role::Role,
|
||||||
user::{User, UserWithRoles},
|
user::{User, UserWithRoles},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -53,6 +54,27 @@ async fn index(db: &State<SqlitePool>, user: User, flash: Option<FlashMessage<'_
|
|||||||
Template::render("index", context.into_json())
|
Template::render("index", context.into_json())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[get("/steering")]
|
||||||
|
async fn steering(db: &State<SqlitePool>, user: User, flash: Option<FlashMessage<'_>>) -> Template {
|
||||||
|
let mut context = Context::new();
|
||||||
|
if let Some(msg) = flash {
|
||||||
|
context.insert("flash", &msg.into_inner());
|
||||||
|
}
|
||||||
|
|
||||||
|
let bootskundige =
|
||||||
|
User::all_with_role(db, &Role::find_by_name(db, "Bootsführer").await.unwrap()).await;
|
||||||
|
|
||||||
|
let mut coxes = User::all_with_role(db, &Role::find_by_name(db, "cox").await.unwrap()).await;
|
||||||
|
|
||||||
|
coxes.retain(|user| !bootskundige.contains(&user)); // Remove bootskundige from coxes list
|
||||||
|
|
||||||
|
context.insert("coxes", &coxes);
|
||||||
|
context.insert("bootskundige", &bootskundige);
|
||||||
|
|
||||||
|
context.insert("loggedin_user", &UserWithRoles::from_user(user, db).await);
|
||||||
|
Template::render("steering", context.into_json())
|
||||||
|
}
|
||||||
|
|
||||||
#[post("/", data = "<login>")]
|
#[post("/", data = "<login>")]
|
||||||
async fn wikiauth(db: &State<SqlitePool>, login: Form<LoginForm<'_>>) -> String {
|
async fn wikiauth(db: &State<SqlitePool>, login: Form<LoginForm<'_>>) -> String {
|
||||||
match User::login(db, login.name, login.password).await {
|
match User::login(db, login.name, login.password).await {
|
||||||
@ -86,7 +108,7 @@ pub struct Config {
|
|||||||
|
|
||||||
pub fn config(rocket: Rocket<Build>) -> Rocket<Build> {
|
pub fn config(rocket: Rocket<Build>) -> Rocket<Build> {
|
||||||
rocket
|
rocket
|
||||||
.mount("/", routes![index])
|
.mount("/", routes![index, steering])
|
||||||
.mount("/auth", auth::routes())
|
.mount("/auth", auth::routes())
|
||||||
.mount("/wikiauth", routes![wikiauth])
|
.mount("/wikiauth", routes![wikiauth])
|
||||||
.mount("/log", log::routes())
|
.mount("/log", log::routes())
|
||||||
|
@ -81,6 +81,9 @@
|
|||||||
<a href="/boatreservation"
|
<a href="/boatreservation"
|
||||||
class="block w-100 py-2 hover:text-primary-600">Bootsreservierung</a>
|
class="block w-100 py-2 hover:text-primary-600">Bootsreservierung</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="py-1">
|
||||||
|
<a href="/steering" class="block w-100 py-2 hover:text-primary-600">Steuerleute & Co</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
22
templates/steering.html.tera
Normal file
22
templates/steering.html.tera
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{% import "includes/macros" as macros %}
|
||||||
|
{% extends "base" %}
|
||||||
|
{% block content %}
|
||||||
|
<div class="max-w-screen-lg w-full">
|
||||||
|
<h1 class="h1">Steuerleute + Personen mit Steuerberechtigung</h1>
|
||||||
|
<div class="border-r border-l border-gray-200 dark:border-primary-600">
|
||||||
|
<div class="border-t border-gray-200 dark:border-primary-600 bg-white dark:bg-primary-900 text-black dark:text-white flex justify-between items-center px-3 py-1">
|
||||||
|
<ul>
|
||||||
|
{% for cox in coxes | sort(attribute='name') %}<li>{{ cox.name }}</li>{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h1 class="h1">Bootskundige</h1>
|
||||||
|
<div class="border-r border-l border-gray-200 dark:border-primary-600">
|
||||||
|
<div class="border-t border-gray-200 dark:border-primary-600 bg-white dark:bg-primary-900 text-black dark:text-white flex justify-between items-center px-3 py-1">
|
||||||
|
<ul>
|
||||||
|
{% for cox in bootskundige | sort(attribute='name') %}<li>{{ cox.name }}</li>{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
Loading…
Reference in New Issue
Block a user