allow moving scheckbuch -> regular
All checks were successful
CI/CD Pipeline / test (push) Successful in 15m20s
CI/CD Pipeline / deploy-staging (push) Has been skipped
CI/CD Pipeline / deploy-main (push) Has been skipped

This commit is contained in:
2025-05-03 12:27:02 +02:00
parent c47b1988b2
commit 9aab07422d
8 changed files with 228 additions and 127 deletions

View File

@ -390,13 +390,11 @@ async fn update_phone(
);
};
match user.update_phone(db, &admin, &data.phone).await {
Ok(_) => Flash::success(
Redirect::to(format!("/admin/user/{}", user.id)),
"Telefonnummer erfolgreich geändert",
),
Err(e) => Flash::error(Redirect::to(format!("/admin/user/{}", user.id)), e),
}
user.update_phone(db, &admin, &data.phone).await;
Flash::success(
Redirect::to(format!("/admin/user/{}", user.id)),
"Telefonnummer erfolgreich geändert",
)
}
#[derive(FromForm, Debug)]
@ -418,13 +416,12 @@ async fn update_address(
);
};
match user.update_address(db, &admin, &data.address).await {
Ok(_) => Flash::success(
Redirect::to(format!("/admin/user/{}", user.id)),
"Adresse erfolgreich geändert",
),
Err(e) => Flash::error(Redirect::to(format!("/admin/user/{}", user.id)), e),
}
user.update_address(db, &admin, &data.address).await;
Flash::success(
Redirect::to(format!("/admin/user/{}", user.id)),
"Adresse erfolgreich geändert",
)
}
#[derive(FromForm, Debug)]
@ -831,6 +828,7 @@ async fn scheckbook_to_regular(
db: &State<SqlitePool>,
data: Form<ScheckToRegularForm<'_>>,
admin: ManageUserUser,
config: &State<Config>,
id: i32,
) -> Flash<Redirect> {
let Some(user) = User::find_by_id(db, id).await else {
@ -842,13 +840,19 @@ async fn scheckbook_to_regular(
let Ok(birthdate) = NaiveDate::parse_from_str(&data.birthdate, "%Y-%m-%d") else {
return Flash::error(
Redirect::to(format!("/admin/user/{id}")),
format!("Datum {} ist nicht im YYYY-MM-DD Format", &data.birthdate),
format!(
"Geburtsdatum {} ist nicht im YYYY-MM-DD Format",
&data.birthdate
),
);
};
let Ok(member_since) = NaiveDate::parse_from_str(&data.member_since, "%Y-%m-%d") else {
return Flash::error(
Redirect::to(format!("/admin/user/{id}")),
format!("Datum {} ist nicht im YYYY-MM-DD Format", &data.birthdate),
format!(
"Beitrittsdatum {} ist nicht im YYYY-MM-DD Format",
&data.birthdate
),
);
};
@ -859,14 +863,28 @@ async fn scheckbook_to_regular(
);
};
let Ok(phone) = data.phone.clone().try_into() else {
return Flash::error(
Redirect::to(format!("/admin/user/{id}")),
"Vereinsmitglied braucht eine Telefonnummer",
);
};
let Ok(address) = data.address.clone().try_into() else {
return Flash::error(
Redirect::to(format!("/admin/user/{id}")),
"Vereinsmitglied braucht eine Adresse",
);
};
match user
.convert_to_regular_user(
db,
&config.smtp_pw,
&admin,
&member_since,
&birthdate,
&data.phone,
&data.address,
phone,
address,
&data.membership_pdf,
)
.await