From acc0ceaf404a34263d212111a82de4d63f499c88 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Mon, 29 Nov 2021 21:25:10 +0100 Subject: [PATCH] chore: move exam office settings to User --- config/settings.yml | 1 + models/users.model | 2 +- src/Foundation/Yesod/Auth.hs | 1 + src/Handler/Users/Add.hs | 1 + src/Handler/Utils/Users.hs | 1 - src/Settings.hs | 1 + test/Database/Fill.hs | 8 ++++++++ 7 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config/settings.yml b/config/settings.yml index ff72cb3c0..eaaa6483b 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -232,6 +232,7 @@ user-defaults: download-files: false warning-days: 1209600 show-sex: false + exam-office-get-synced: true # During central allocations lecturer-given ratings of applications (as # ExamGrades) are combined with a central priority. diff --git a/models/users.model b/models/users.model index 476451943..80db0f66b 100644 --- a/models/users.model +++ b/models/users.model @@ -35,6 +35,7 @@ User json -- Each Uni2work user has a corresponding row in this table; create csvOptions CsvOptions "default='{}'::jsonb" sex Sex Maybe showSex Bool default=false + examOfficeGetSynced Bool default=true -- whether synced status should be displayed for exam results by default UniqueAuthentication ident -- Column 'ident' can be used as a row-key in this table UniqueEmail email -- Column 'email' can be used as a row-key in this table deriving Show Eq Ord Generic -- Haskell-specific settings for runtime-value representing a row in memory @@ -55,7 +56,6 @@ UserSystemFunction UserExamOffice user UserId field StudyTermsId - getSynced Bool default=true -- whether synced status should be displayed for exam results by default UniqueUserExamOffice user field deriving Generic UserSchool -- Managed by users themselves, encodes "schools of interest" diff --git a/src/Foundation/Yesod/Auth.hs b/src/Foundation/Yesod/Auth.hs index 29c77c654..cf2d01e53 100644 --- a/src/Foundation/Yesod/Auth.hs +++ b/src/Foundation/Yesod/Auth.hs @@ -257,6 +257,7 @@ upsertCampusUser upsertMode ldapData = do , userDownloadFiles = userDefaultDownloadFiles , userWarningDays = userDefaultWarningDays , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced , userNotificationSettings = def , userLanguages = Nothing , userCsvOptions = def diff --git a/src/Handler/Users/Add.hs b/src/Handler/Users/Add.hs index 01196e7ec..339f7164c 100644 --- a/src/Handler/Users/Add.hs +++ b/src/Handler/Users/Add.hs @@ -75,6 +75,7 @@ postAdminUserAddR = do , userDownloadFiles = userDefaultDownloadFiles , userWarningDays = userDefaultWarningDays , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced , userNotificationSettings = def , userLanguages = Nothing , userCsvOptions = def diff --git a/src/Handler/Utils/Users.hs b/src/Handler/Utils/Users.hs index 139485552..f851d4fc9 100644 --- a/src/Handler/Utils/Users.hs +++ b/src/Handler/Utils/Users.hs @@ -469,7 +469,6 @@ assimilateUser newUserId oldUserId = mapReaderT execWriterT $ do return $ UserExamOffice E.<# E.val newUserId E.<&> (userExamOffice E.^. UserExamOfficeField) - E.<&> (userExamOffice E.^. UserExamOfficeGetSynced) ) (\_current _excluded -> []) deleteWhere [ UserExamOfficeUser ==. oldUserId ] diff --git a/src/Settings.hs b/src/Settings.hs index c9ab18286..bb64d4979 100644 --- a/src/Settings.hs +++ b/src/Settings.hs @@ -255,6 +255,7 @@ data UserDefaultConf = UserDefaultConf , userDefaultDownloadFiles :: Bool , userDefaultWarningDays :: NominalDiffTime , userDefaultShowSex :: Bool + , userDefaultExamOfficeGetSynced :: Bool } deriving (Show) data PWHashConf = PWHashConf diff --git a/test/Database/Fill.hs b/test/Database/Fill.hs index b57095456..94f5d208e 100644 --- a/test/Database/Fill.hs +++ b/test/Database/Fill.hs @@ -150,6 +150,7 @@ fillDb = do , userCsvOptions = def { csvFormat = csvPreset # CsvPresetRFC } , userSex = Just SexMale , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced } fhamann <- insert User { userIdent = "felix.hamann@campus.lmu.de" @@ -179,6 +180,7 @@ fillDb = do , userCsvOptions = def { csvFormat = csvPreset # CsvPresetExcel } , userSex = Just SexMale , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced } jost <- insert User { userIdent = "jost@tcs.ifi.lmu.de" @@ -208,6 +210,7 @@ fillDb = do , userSex = Just SexMale , userCsvOptions = def , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced } maxMuster <- insert User { userIdent = "max@campus.lmu.de" @@ -237,6 +240,7 @@ fillDb = do , userCsvOptions = def , userSex = Just SexMale , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced } tinaTester <- insert $ User { userIdent = "tester@campus.lmu.de" @@ -266,6 +270,7 @@ fillDb = do , userCsvOptions = def , userSex = Just SexNotApplicable , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced } svaupel <- insert User { userIdent = "vaupel.sarah@campus.lmu.de" @@ -295,6 +300,7 @@ fillDb = do , userCsvOptions = def , userSex = Just SexFemale , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced } sbarth <- insert User { userIdent = "Stephan.Barth@campus.lmu.de" @@ -324,6 +330,7 @@ fillDb = do , userCsvOptions = def , userSex = Just SexMale , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = False } let @@ -383,6 +390,7 @@ fillDb = do , userCsvOptions = def , userSex = Nothing , userShowSex = userDefaultShowSex + , userExamOfficeGetSynced = userDefaultExamOfficeGetSynced } where userIdent :: IsString t => t