Merge pull request 'allow to add logbook entries up to a week late; show all boats in boatshouse; don't show guests for external boats' (#141) from fixes into main
Reviewed-on: #141
This commit is contained in:
commit
2726db433e
@ -4,6 +4,7 @@ use rocket::serde::{Deserialize, Serialize};
|
|||||||
use rocket::FromForm;
|
use rocket::FromForm;
|
||||||
use sqlx::{FromRow, Sqlite, SqlitePool, Transaction};
|
use sqlx::{FromRow, Sqlite, SqlitePool, Transaction};
|
||||||
|
|
||||||
|
use super::location::Location;
|
||||||
use super::user::User;
|
use super::user::User;
|
||||||
|
|
||||||
#[derive(FromRow, Debug, Serialize, Deserialize)]
|
#[derive(FromRow, Debug, Serialize, Deserialize)]
|
||||||
@ -94,6 +95,15 @@ impl Boat {
|
|||||||
return owner_id == user.id;
|
return owner_id == user.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if user.has_role(db, "Rennrudern").await {
|
||||||
|
let ottensheim = Location::find_by_name(db, "Ottensheim".into())
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
if self.location_id == ottensheim.id {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if self.amount_seats == 1 {
|
if self.amount_seats == 1 {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -471,7 +471,12 @@ ORDER BY departure DESC
|
|||||||
return Err(LogbookUpdateError::ArrivalNotAfterDeparture);
|
return Err(LogbookUpdateError::ArrivalNotAfterDeparture);
|
||||||
}
|
}
|
||||||
let today = Utc::now().date_naive();
|
let today = Utc::now().date_naive();
|
||||||
if arr.date() != today && !user.has_role_tx(db, "admin").await {
|
let day_diff = today - arr.date();
|
||||||
|
let day_diff = day_diff.num_days();
|
||||||
|
if day_diff >= 7 && !user.has_role_tx(db, "admin").await {
|
||||||
|
return Err(LogbookUpdateError::OnlyAllowedToEndTripsEndingToday);
|
||||||
|
}
|
||||||
|
if day_diff < 0 && !user.has_role_tx(db, "admin").await {
|
||||||
return Err(LogbookUpdateError::OnlyAllowedToEndTripsEndingToday);
|
return Err(LogbookUpdateError::OnlyAllowedToEndTripsEndingToday);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ async fn kiosk(
|
|||||||
flash: Option<FlashMessage<'_>>,
|
flash: Option<FlashMessage<'_>>,
|
||||||
kiosk: KioskCookie,
|
kiosk: KioskCookie,
|
||||||
) -> Template {
|
) -> Template {
|
||||||
let boats = Boat::all_at_location(db, kiosk.0).await;
|
let boats = Boat::all(db).await;
|
||||||
let coxes: Vec<UserWithWaterStatus> = futures::future::join_all(
|
let coxes: Vec<UserWithWaterStatus> = futures::future::join_all(
|
||||||
User::cox(db)
|
User::cox(db)
|
||||||
.await
|
.await
|
||||||
@ -188,7 +188,7 @@ async fn create_logbook(
|
|||||||
Err(LogbookCreateError::ShipmasterNotInRowers) => Flash::error(Redirect::to("/log"), "Schiffsführer nicht in Liste der Ruderer!"),
|
Err(LogbookCreateError::ShipmasterNotInRowers) => Flash::error(Redirect::to("/log"), "Schiffsführer nicht in Liste der Ruderer!"),
|
||||||
Err(LogbookCreateError::NotYourEntry) => Flash::error(Redirect::to("/log"), "Nicht deine Ausfahrt!"),
|
Err(LogbookCreateError::NotYourEntry) => Flash::error(Redirect::to("/log"), "Nicht deine Ausfahrt!"),
|
||||||
Err(LogbookCreateError::ArrivalSetButNotRemainingTwo) => Flash::error(Redirect::to("/log"), "Ankunftszeit gesetzt aber nicht Distanz + Strecke"),
|
Err(LogbookCreateError::ArrivalSetButNotRemainingTwo) => Flash::error(Redirect::to("/log"), "Ankunftszeit gesetzt aber nicht Distanz + Strecke"),
|
||||||
Err(LogbookCreateError::OnlyAllowedToEndTripsEndingToday) => Flash::error(Redirect::to("/log"), "Nur Ausfahrten, die heute enden dürfen eingetragen werden. Für einen Nachtrag schreibe alle Daten Philipp (Tel. nr. siehe Signal oder it@rudernlinz.at)."),
|
Err(LogbookCreateError::OnlyAllowedToEndTripsEndingToday) => Flash::error(Redirect::to("/log"), "Nur Ausfahrten, die in den letzten Woche enden dürfen eingetragen werden. Für einen Nachtrag schreibe alle Daten Philipp (Tel. nr. siehe Signal oder it@rudernlinz.at)."),
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -199,9 +199,9 @@
|
|||||||
<div class="text-sm text-gray-600 dark:text-gray-100">
|
<div class="text-sm text-gray-600 dark:text-gray-100">
|
||||||
Ruderer:
|
Ruderer:
|
||||||
{% for rower in log.rowers %}
|
{% for rower in log.rowers %}
|
||||||
{{ rower.name }}{% if not loop.last or amount_guests > 0 %}, {% endif %}
|
{{ rower.name }}{% if not loop.last or amount_guests > 0 and log.boat.name != 'Externes Boot' %}, {% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if amount_guests > 0 %}
|
{% if amount_guests > 0 and log.boat.name != 'Externes Boot' %}
|
||||||
Gäste <small class="text-gray-600 dark:text-gray-100">(ohne Account)</small>: {{ amount_guests }}
|
Gäste <small class="text-gray-600 dark:text-gray-100">(ohne Account)</small>: {{ amount_guests }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user