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> {
|
pub(crate) async fn all_with_route(db: &SqlitePool, route: &Route) -> Vec<Self> {
|
||||||
sqlx::query_as!(
|
sqlx::query_as!(
|
||||||
Team,
|
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
|
route.id
|
||||||
)
|
)
|
||||||
.fetch_all(db)
|
.fetch_all(db)
|
||||||
|
@ -528,24 +528,34 @@ async fn index(State(db): State<Arc<SqlitePool>>, session: Session) -> Markup {
|
|||||||
a href="/admin/route" { "Route" }
|
a href="/admin/route" { "Route" }
|
||||||
" sie zugewiesen sind."
|
" sie zugewiesen sind."
|
||||||
}
|
}
|
||||||
ol {
|
article {
|
||||||
@for team in &teams{
|
h2 { "Neues Team" }
|
||||||
li {
|
@if routes.is_empty() {
|
||||||
a href=(format!("/admin/team/{}", team.id)){
|
article class="error" {
|
||||||
(team.name)
|
(PreEscaped("Bevor du ein Team erstellen kannst, musst du zumindest eine Route erstellen, die das Team gehen kann → "))
|
||||||
}
|
a role="button" href="/admin/route" {
|
||||||
a href=(format!("/admin/team/{}/delete", team.id))
|
"Team erstellen"
|
||||||
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 teams.is_empty() {
|
@if routes.len() == 1 {
|
||||||
article class="warning" {
|
fieldset role="group" {
|
||||||
"Es gibt noch keine Teams. "
|
input type="text" name="name" placeholder="Teamnamen" required;
|
||||||
@if !routes.is_empty() {
|
input type="hidden" name="route_id" value=(routes[0].id) ;
|
||||||
"Das kannst du hier ändern ⤵️"
|
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? 😳"
|
"Hab ich eine Gruppe verloren? 😳"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
h2 { "Neues Team" }
|
@for route in &routes {
|
||||||
@if routes.is_empty() {
|
h2 { (route.name) }
|
||||||
article class="error" {
|
ol {
|
||||||
(PreEscaped("Bevor du ein Team erstellen kannst, musst du zumindest eine Route erstellen, die das Team gehen kann → "))
|
@for team in &route.teams(&db).await{
|
||||||
a role="button" href="/admin/route" {
|
li {
|
||||||
"Team erstellen"
|
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 teams.is_empty() {
|
||||||
@if routes.len() == 1 {
|
article class="warning" {
|
||||||
fieldset role="group" {
|
"Es gibt noch keine Teams. "
|
||||||
input type="text" name="name" placeholder="Teamnamen" required;
|
@if !routes.is_empty() {
|
||||||
input type="hidden" name="route_id" value=(routes[0].id) ;
|
"Das kannst du hier ändern ⤵️"
|
||||||
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";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user