diff --git a/src/route.rs b/src/route.rs index 8b939c5..08305cb 100644 --- a/src/route.rs +++ b/src/route.rs @@ -123,11 +123,12 @@ DROP TABLE temp_pos;", true } - async fn delete(&self, db: &SqlitePool) { + async fn delete(&self, db: &SqlitePool) -> Result<(), String> { sqlx::query!("DELETE FROM route WHERE id = ?", self.id) .execute(db) .await - .unwrap(); + .map_err(|e| e.to_string())?; + Ok(()) } async fn stations(&self, db: &SqlitePool) -> Vec { @@ -178,7 +179,7 @@ async fn index(State(db): State>, session: Session) -> Markup { em { "Routen " } "definieren welche " a href="/station" { "Stationen" } - " in welcher Reihenfolge abgeklappert werden sollen. Wenn es verschiedene Kategorien (zB Kinder- und Erwachsenenwertung) gibt, kannst du auch mehrere Routen mit (teils) überlappenden Stationen erstellen." + " von den Teilnehmern in welcher Reihenfolge abgeklappert werden sollen. Wenn es verschiedene Kategorien (zB Kinder- und Erwachsenenwertung) gibt, kannst du auch mehrere Routen mit (teils) überlappenden Stationen erstellen." } ol { @for route in &routes{ @@ -250,9 +251,14 @@ async fn delete( return Redirect::to("/route"); }; - route.delete(&db).await; - - succ!(session, "Route '{}' erfolgreich gelöscht!", route.name); + match route.delete(&db).await { + Ok(_) => succ!(session, "Route '{}' erfolgreich gelöscht!", route.name), + Err(e) => err!( + session, + "Route '{}' kann nicht gelöscht werden, da sie bereits verwendet wird. ({e})", + route.name + ), + } Redirect::to("/route") } diff --git a/src/station/routes.rs b/src/station/routes.rs index 96ba24f..01488b2 100644 --- a/src/station/routes.rs +++ b/src/station/routes.rs @@ -171,7 +171,7 @@ async fn view( } @if station.lat.is_some() && station.lng.is_some() { a href=(format!("/station/{}/location-clear", station.id)) - onclick="return confirm('Bist du sicher, dass du den Standort der Station löschen willst? Das kann _NICHT_ mehr rückgängig gemacht werden.');"{ + onclick="return confirm('Bist du sicher, dass du den Standort der Station löschen willst?');"{ "Standort löschen" } }