finish day CRU

This commit is contained in:
philipp 2023-02-08 22:02:17 +01:00
parent 9fd0481f73
commit 1934fef0dd
5 changed files with 30 additions and 17 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
target/
db.sqlite

View File

@ -21,6 +21,7 @@
# Edge case
- Trip in the morning on usi rowing day
- after N people (/ cox) -> red highlighted -> queue
# Fancy
- Every cox can define which boats they use

BIN
db.sqlite

Binary file not shown.

View File

@ -7,6 +7,7 @@ use std::collections::HashMap;
use chrono::Duration;
use chrono::Local;
use rocket::response::Redirect;
use rocket::{form::Form, fs::FileServer, State};
use rocket_dyn_templates::context;
use rocket_dyn_templates::Template;
@ -49,17 +50,26 @@ struct DayForm {
}
#[put("/day", data = "<day>")]
async fn create(db: &State<DatabaseConnection>, day: Form<DayForm>) -> Template {
let day = day::ActiveModel {
day: Set(chrono::NaiveDate::parse_from_str(&day.day, "%Y-%m-%d").unwrap()),
async fn create(db: &State<DatabaseConnection>, day: Form<DayForm>) -> Redirect {
let id = chrono::NaiveDate::parse_from_str(&day.day, "%Y-%m-%d").unwrap();
let new_day = day::ActiveModel {
day: Set(id),
planned_amount_cox: Set(day.planned_amount_cox),
planned_starting_time: Set(day.planned_starting_time.clone()),
open_registration: Set(day.open_registration),
};
day.insert(db.inner()).await.unwrap(); //TODO: fixme
let day: Option<day::Model> = day::Entity::find_by_id(id).one(db.inner()).await.unwrap();
match day {
Some(_) => {
new_day.update(db.inner()).await.unwrap(); //TODO: fixme
}
None => {
new_day.insert(db.inner()).await.unwrap(); //TODO: fixme
}
}
Template::render("index", context! {})
Redirect::to("/")
}
#[launch]

View File

@ -7,42 +7,43 @@
<br />
{% if days[day_string] and days[day_string].planned_amount_cox > 0%}
{% set day = days[day_string] %}
Geplante Steuerpersonen: {{ day.planned_amount_cox}}<br />
Geplante Abfahrtszeit: {{ day.planned_starting_time }}<br />
{% if day.open_registration %}
{% set cur_day = days[day_string] %}
Geplante Steuerpersonen: {{ cur_day.planned_amount_cox}}<br />
Geplante Abfahrtszeit: {{ cur_day.planned_starting_time }}<br />
{% if cur_day.open_registration %}
ANMELDEN
{% else %}
Anmeldung an diesem Tag leider nicht möglich (zB bei USI Kursen)
{% endif %}
{% else %}
(Noch) keine Ausfahrt geplant
{% endif %}
<details>
<summary class="button">&plus;</summary>
<summary class="button">&#x270e;</summary>
<form method="post" action="/day">
<input type="hidden" name="_method" value="put" />
<input type="hidden" name="day" value="{{ day | date(format="%Y-%m-%d") }}" />
<input type="hidden" name="day" value="{{ day_string }}" />
<div class="row">
<div class="three columns">
<label for="planned_amount_cox">Geplante Steuerpersonen</label>
<input class="u-full-width" type="number" id="planned_amount_cox" name="planned_amount_cox">
<input class="u-full-width" type="number" id="planned_amount_cox" name="planned_amount_cox" value="{{ cur_day.planned_amount_cox | default(value=2) }}">
</div>
<div class="three columns">
<label for="planned_starting_time">Geplante Abfahrtszeit</label>
<input class="u-full-width" type="time" id="planned_starting_time" name="planned_starting_time">
<input class="u-full-width" type="time" id="planned_starting_time" name="planned_starting_time" value="{{ cur_day.planned_starting_time | default(value='17:00') }}">
</div>
<div class="three columns">
<label for="open_registration">Registrierung offen</label>
<input class="u-full-width" type="checkbox" id="open_registration" name="open_registration" checked="true"/>
<input class="u-full-width" type="checkbox" id="open_registration" name="open_registration" {% if not cur_day or cur_day.open_registration %} checked="true" {% endif %}/>
</div>
<div class="three columns">
<input class="button-primary" type="submit" value="Hinzufügen">
<input class="button-primary" type="submit" value="Speichern">
</div>
</div>
</form>
</details>
{% endif %}
<hr />
{% endfor %}