From ed6d05eb9e2afa7e8c059f4e13f57131e97225e3 Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Wed, 14 May 2025 08:04:56 +0200 Subject: [PATCH 1/3] not so much clutter when addding notes --- src/model/activity.rs | 6 ++++++ src/model/user/basic.rs | 3 +-- src/tera/admin/user.rs | 11 +++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/model/activity.rs b/src/model/activity.rs index a2f0759..5a83180 100644 --- a/src/model/activity.rs +++ b/src/model/activity.rs @@ -17,11 +17,14 @@ pub struct Activity { pub keep_until: Option, } +// TODO: add `reason` as additional db field, to be able to query and show this to the users pub enum Reason<'a> { // `User` tried to login with `String` as UserAgent SuccLogin(&'a User, String), // `User` changed the data of `User`, explanation in `String` UserDataChange(&'a ManageUserUser, &'a User, String), + // New Note for User + NewUserNote(&'a ManageUserUser, &'a User, String), } impl From> for ActivityBuilder { @@ -36,6 +39,9 @@ impl From> for ActivityBuilder { "{changed_by} hat die Daten von {changed_user} aktualisiert: {explanation}" )) .relevant_for_user(changed_user), + Reason::NewUserNote(changed_by, user, explanation) => { + Self::new(&format!("({changed_by}) {explanation}")).relevant_for_user(user) + } } } } diff --git a/src/model/user/basic.rs b/src/model/user/basic.rs index fb9eaad..2e879e7 100644 --- a/src/model/user/basic.rs +++ b/src/model/user/basic.rs @@ -17,7 +17,6 @@ impl User { &self, db: &SqlitePool, updated_by: &ManageUserUser, - user: &User, note: &str, ) -> Result<(), String> { let note = note.trim(); @@ -25,7 +24,7 @@ impl User { ActivityBuilder::from(activity::Reason::UserDataChange( updated_by, self, - format!("Neue Notizen: {note}"), + note.to_string(), )) .save(db) .await; diff --git a/src/tera/admin/user.rs b/src/tera/admin/user.rs index d023935..4a5c04f 100644 --- a/src/tera/admin/user.rs +++ b/src/tera/admin/user.rs @@ -7,11 +7,11 @@ use crate::{ mail::valid_mails, role::Role, user::{ - AdminUser, AllowedToEditPaymentStatusUser, ManageUserUser, User, UserWithDetails, - UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, clubmember::ClubMemberUser, foerdernd::FoerderndUser, member::Member, regular::RegularUser, scheckbuch::ScheckbuchUser, schnupperant::SchnupperantUser, schnupperinterest::SchnupperInterestUser, unterstuetzend::UnterstuetzendUser, + AdminUser, AllowedToEditPaymentStatusUser, ManageUserUser, User, UserWithDetails, + UserWithMembershipPdf, UserWithRolesAndMembershipPdf, VorstandUser, }, }, tera::Config, @@ -19,7 +19,6 @@ use crate::{ use chrono::NaiveDate; use futures::future::join_all; use rocket::{ - FromForm, Request, Route, State, form::Form, fs::TempFile, get, @@ -27,9 +26,9 @@ use rocket::{ post, request::{FlashMessage, FromRequest, Outcome}, response::{Flash, Redirect}, - routes, + routes, FromForm, Request, Route, State, }; -use rocket_dyn_templates::{Template, tera::Context}; +use rocket_dyn_templates::{tera::Context, Template}; use sqlx::SqlitePool; // Custom request guard to extract the Referer header @@ -350,7 +349,7 @@ async fn add_note( ); }; - match user.add_note(db, &admin, &user, &data.note).await { + match user.add_note(db, &admin, &data.note).await { Ok(_) => Flash::success( Redirect::to(format!("/admin/user/{}", user.id)), "Notiz hinzugefügt", -- 2.49.0 From bf7dab235c11d9788d0c4f8d659d1887d8cad6e7 Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Wed, 14 May 2025 08:31:04 +0200 Subject: [PATCH 2/3] add auto-update; Progress at #503 --- .gitea/workflows/update.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .gitea/workflows/update.yml diff --git a/.gitea/workflows/update.yml b/.gitea/workflows/update.yml new file mode 100644 index 0000000..09921a1 --- /dev/null +++ b/.gitea/workflows/update.yml @@ -0,0 +1,34 @@ +name: Update Cargo Dependencies + +on: + schedule: + - cron: '0 2 * * 5' # Run weekly on Friday at 2am + workflow_dispatch: # Allow manual triggering + +jobs: + update-dependencies: + runs-on: ubuntu-latest + container: git.hofer.link/philipp/ci-images:rust-latest + steps: + - uses: actions/checkout@v3 + + - name: Update dependencies + run: | + cargo upgrade + cargo update + + - name: Create Pull Request + uses: https://git.hofer.link/philipp/create-pull-request@18ef1fdad70eec569ab10292c1fa79c1b5296370 + with: + token: ${{ secrets.GITEATOKEN }} + commit-message: Update Cargo dependencies + title: Update Cargo dependencies + body: | + This PR updates Cargo dependencies to their latest versions. + + @philipp + + - Run `cargo upgrade` to update version requirements in Cargo.toml + - Run `cargo update` to update Cargo.lock + branch: update-cargo-dependencies + delete-branch: true -- 2.49.0 From 412b733e305c5019bca3a1c82eb12f05b587fe29 Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Wed, 14 May 2025 23:44:53 +0200 Subject: [PATCH 3/3] fix ci --- src/model/user/mod.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/model/user/mod.rs b/src/model/user/mod.rs index 1361fd3..34fed45 100644 --- a/src/model/user/mod.rs +++ b/src/model/user/mod.rs @@ -919,7 +919,7 @@ impl UserWithMembershipPdf { #[cfg(test)] mod test { - use crate::testdb; + use crate::{model::user::ManageUserUser, testdb}; use super::User; use sqlx::SqlitePool; @@ -994,8 +994,9 @@ mod test { fn reset() { let pool = testdb!(); let user = User::find_by_id(&pool, 1).await.unwrap(); + let changed_by = ManageUserUser::new(&pool, &user).await.unwrap(); - user.reset_pw(&pool).await; + user.reset_pw(&pool, &changed_by).await; let user = User::find_by_id(&pool, 1).await.unwrap(); assert_eq!(user.pw, None); -- 2.49.0