group teams by routes, sort by last inserted; Fixes #36
This commit is contained in:
parent
944d4d8d19
commit
f55ce1829d
@ -87,7 +87,7 @@ impl Team {
|
||||
pub(crate) async fn all_with_route(db: &SqlitePool, route: &Route) -> Vec<Self> {
|
||||
sqlx::query_as!(
|
||||
Team,
|
||||
"select id, name, notes, amount_people, first_station_id, route_id from team where route_id = ?;",
|
||||
"SELECT id, name, notes, amount_people, first_station_id, route_id FROM team WHERE route_id = ?;",
|
||||
route.id
|
||||
)
|
||||
.fetch_all(db)
|
||||
|
@ -528,24 +528,34 @@ async fn index(State(db): State<Arc<SqlitePool>>, session: Session) -> Markup {
|
||||
a href="/admin/route" { "Route" }
|
||||
" sie zugewiesen sind."
|
||||
}
|
||||
ol {
|
||||
@for team in &teams{
|
||||
li {
|
||||
a href=(format!("/admin/team/{}", team.id)){
|
||||
(team.name)
|
||||
}
|
||||
a href=(format!("/admin/team/{}/delete", team.id))
|
||||
onclick="return confirm('Bist du sicher, dass das Team gelöscht werden soll? Das kann _NICHT_ mehr rückgängig gemacht werden.');" {
|
||||
"🗑️"
|
||||
}
|
||||
article {
|
||||
h2 { "Neues Team" }
|
||||
@if routes.is_empty() {
|
||||
article class="error" {
|
||||
(PreEscaped("Bevor du ein Team erstellen kannst, musst du zumindest eine Route erstellen, die das Team gehen kann → "))
|
||||
a role="button" href="/admin/route" {
|
||||
"Team erstellen"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@if teams.is_empty() {
|
||||
article class="warning" {
|
||||
"Es gibt noch keine Teams. "
|
||||
@if !routes.is_empty() {
|
||||
"Das kannst du hier ändern ⤵️"
|
||||
} @else {
|
||||
form action="/admin/team" method="post" {
|
||||
@if routes.len() == 1 {
|
||||
fieldset role="group" {
|
||||
input type="text" name="name" placeholder="Teamnamen" required;
|
||||
input type="hidden" name="route_id" value=(routes[0].id) ;
|
||||
input type="submit" value="Neues Team";
|
||||
}
|
||||
} @else {
|
||||
input type="text" name="name" placeholder="Teamnamen" required;
|
||||
select name="route_id" aria-label="Route auswählen" required {
|
||||
@for route in &routes {
|
||||
option value=(route.id) {
|
||||
(route.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
input type="submit" value="Neues Team";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -554,32 +564,27 @@ async fn index(State(db): State<Arc<SqlitePool>>, session: Session) -> Markup {
|
||||
"Hab ich eine Gruppe verloren? 😳"
|
||||
}
|
||||
}
|
||||
h2 { "Neues Team" }
|
||||
@if routes.is_empty() {
|
||||
article class="error" {
|
||||
(PreEscaped("Bevor du ein Team erstellen kannst, musst du zumindest eine Route erstellen, die das Team gehen kann → "))
|
||||
a role="button" href="/admin/route" {
|
||||
"Team erstellen"
|
||||
@for route in &routes {
|
||||
h2 { (route.name) }
|
||||
ol {
|
||||
@for team in &route.teams(&db).await{
|
||||
li {
|
||||
a href=(format!("/admin/team/{}", team.id)){
|
||||
(team.name)
|
||||
}
|
||||
a href=(format!("/admin/team/{}/delete", team.id))
|
||||
onclick="return confirm('Bist du sicher, dass das Team gelöscht werden soll? Das kann _NICHT_ mehr rückgängig gemacht werden.');" {
|
||||
"🗑️"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} @else {
|
||||
form action="/admin/team" method="post" {
|
||||
@if routes.len() == 1 {
|
||||
fieldset role="group" {
|
||||
input type="text" name="name" placeholder="Teamnamen" required;
|
||||
input type="hidden" name="route_id" value=(routes[0].id) ;
|
||||
input type="submit" value="Neues Team";
|
||||
}
|
||||
} @else {
|
||||
input type="text" name="name" placeholder="Teamnamen" required;
|
||||
select name="route_id" aria-label="Route auswählen" required {
|
||||
@for route in &routes {
|
||||
option value=(route.id) {
|
||||
(route.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
input type="submit" value="Neues Team";
|
||||
}
|
||||
@if teams.is_empty() {
|
||||
article class="warning" {
|
||||
"Es gibt noch keine Teams. "
|
||||
@if !routes.is_empty() {
|
||||
"Das kannst du hier ändern ⤵️"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user