From ae6d3b0fc30c8097dff68b4794e81483047229fa Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Fri, 6 Dec 2024 14:16:24 +0100 Subject: [PATCH] fix(form): knownUserField not working as intended (WIP) --- .../categories/settings/personal_settings/de-de-formal.msg | 3 ++- .../uniworx/categories/settings/personal_settings/en-eu.msg | 3 ++- package.yaml | 2 +- src/Handler/LMS.hs | 4 ++-- src/Handler/Qualification.hs | 2 +- src/Handler/Users.hs | 4 ++-- src/Handler/Utils/Form.hs | 5 +++-- 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/messages/uniworx/categories/settings/personal_settings/de-de-formal.msg b/messages/uniworx/categories/settings/personal_settings/de-de-formal.msg index 827732551..96c3cee2b 100644 --- a/messages/uniworx/categories/settings/personal_settings/de-de-formal.msg +++ b/messages/uniworx/categories/settings/personal_settings/de-de-formal.msg @@ -37,5 +37,6 @@ ProfileSuperviseeRemark n@Int m@Int: Dieser Nutzer ist Ansprechpartner für #{n} UserTelephone: Telefon UserMobile: Mobiltelefon Company: Firmenzugehörigkeit -CompanyPersonalNumber: Personalnummer (nur Fraport AG) +CompanyPersonalNumber: Personalnummer +CompanyPersonalNumberFraport: Personalnummer (nur Fraport AG) CompanyDepartment: Abteilung \ No newline at end of file diff --git a/messages/uniworx/categories/settings/personal_settings/en-eu.msg b/messages/uniworx/categories/settings/personal_settings/en-eu.msg index db67e3940..5fff74f3a 100644 --- a/messages/uniworx/categories/settings/personal_settings/en-eu.msg +++ b/messages/uniworx/categories/settings/personal_settings/en-eu.msg @@ -37,5 +37,6 @@ ProfileSuperviseeRemark n m: This person supervises #{pluralENsN n "person"}#{no UserTelephone: Phone UserMobile: Mobile Company: Company affilitaion -CompanyPersonalNumber: Personnel number (Fraport AG only) +CompanyPersonalNumber: Personnel number +CompanyPersonalNumberFraport: Personnel number (Fraport AG only) CompanyDepartment: Department \ No newline at end of file diff --git a/package.yaml b/package.yaml index 500d1555e..7e7a78efa 100644 --- a/package.yaml +++ b/package.yaml @@ -260,7 +260,7 @@ ghc-options: - -fno-warn-unrecognised-pragmas - -fno-warn-partial-type-signatures - -fno-max-relevant-binds - - -j5 + - -j - -freduction-depth=0 - -fprof-auto-calls - -g diff --git a/src/Handler/LMS.hs b/src/Handler/LMS.hs index 3b27d165f..5b00547d8 100644 --- a/src/Handler/LMS.hs +++ b/src/Handler/LMS.hs @@ -517,8 +517,8 @@ mkLmsTable isAdmin (Entity qid quali) acts cols psValidator = do ] dbtFilterUI mPrev = mconcat [ fltrUserNameEmailHdrUI MsgLmsUser mPrev - , prismAForm (singletonFilter "user-company") mPrev $ aopt textField (fslI MsgTableCompany) - , prismAForm (singletonFilter "personal-number" ) mPrev $ aopt textField (fslI MsgCompanyPersonalNumber) + , prismAForm (singletonFilter "user-company") mPrev $ aopt textField (fslI MsgTableCompany) + , prismAForm (singletonFilter "personal-number" ) mPrev $ aopt textField (fslI MsgCompanyPersonalNumberFraport) , fltrAVSCardNosUI mPrev , prismAForm (singletonFilter "avs-number" ) mPrev $ aopt textField (fslI MsgAvsPersonNo) , prismAForm (singletonFilter "ident" . maybePrism _PathPiece) mPrev $ aopt (hoistField lift textField) (fslI MsgTableLmsIdent) diff --git a/src/Handler/Qualification.hs b/src/Handler/Qualification.hs index 62d0e5214..14a0fdf75 100644 --- a/src/Handler/Qualification.hs +++ b/src/Handler/Qualification.hs @@ -437,7 +437,7 @@ mkQualificationTable isAdmin (Entity qid quali) acts cols psValidator = do dbtFilterUI mPrev = mconcat [ fltrUserNameEmailHdrUI MsgLmsUser mPrev , prismAForm (singletonFilter "user-company") mPrev $ aopt textField (fslI MsgTableCompany) - , prismAForm (singletonFilter "personal-number" ) mPrev $ aopt textField (fslI MsgCompanyPersonalNumber) + , prismAForm (singletonFilter "personal-number" ) mPrev $ aopt textField (fslI MsgCompanyPersonalNumberFraport) , fltrAVSCardNosUI mPrev , prismAForm (singletonFilter "avs-number" ) mPrev $ aopt textField (fslI MsgAvsPersonNo) , prismAForm (singletonFilter "validity" . maybePrism _PathPiece) mPrev $ aopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgFilterLmsValid) diff --git a/src/Handler/Users.hs b/src/Handler/Users.hs index ea60efdb2..76e1a2507 100644 --- a/src/Handler/Users.hs +++ b/src/Handler/Users.hs @@ -347,8 +347,8 @@ postUsersR = do -- , prismAForm (singletonFilter "user-search") mPrev $ aopt textField (fslI MsgName) -- , prismAForm (singletonFilter "user-ident") mPrev $ aopt textField (fslI MsgAdminUserIdent) -- , prismAForm (singletonFilter "user-email") mPrev $ aopt textField (fslI MsgAdminUserEmail) - , prismAForm (singletonFilter "personal-number" ) mPrev $ aopt textField (fslI MsgCompanyPersonalNumber & setTooltip MsgTableFilterCommaPlusShort) - , prismAForm (singletonFilter "matriculation") mPrev $ aopt matriculationField (fslI MsgTableMatrikelNr & setTooltip MsgTableFilterCommaPlusShort) -- contains filter on UserMatrikelnummer + , prismAForm (singletonFilter "personal-number" ) mPrev $ aopt textField (fslI MsgCompanyPersonalNumberFraport & setTooltip MsgTableFilterCommaPlusShort) + , prismAForm (singletonFilter "matriculation") mPrev $ aopt matriculationField (fslI MsgTableMatrikelNr & setTooltip MsgTableFilterCommaPlusShort) -- contains filter on UserMatrikelnummer -- , prismAForm (singletonFilter "avs-number" ) mPrev $ aopt textField (fslI MsgAvsPersonNo & setTooltip MsgTableFilterCommaPlusShort) -- exact filter on table UserAvs , prismAForm (singletonFilter "company-department") mPrev $ aopt textField (fslI MsgCompanyDepartment) , prismAForm (singletonFilter "user-company") mPrev $ aopt textField (fslI MsgTableCompany) diff --git a/src/Handler/Utils/Form.hs b/src/Handler/Utils/Form.hs index 9c7f62d93..b9ee7a7d4 100644 --- a/src/Handler/Utils/Form.hs +++ b/src/Handler/Utils/Form.hs @@ -2003,10 +2003,11 @@ knownUserField onlySuggested suggestions = Field{..} ) E.limit 3 -- we need a single answer only, so we optimize the query to stop at multiple answers return $ user E.^. UserId + let errMsg m = SomeMessage $ SomeMessages [SomeMessage MsgAvsPersonNo, text2message "/", SomeMessage MsgCompanyPersonalNumber, text2message t, m] case dbRes of [uid] -> return $ Right $ Just $ E.unValue uid - [] -> return $ Left $ SomeMessage $ SomeMessages [SomeMessage MsgAvsPersonNo, text2message "/", SomeMessage MsgCompanyPersonalNumber, SomeMessage MsgUnknown] - _ -> return $ Left $ SomeMessage $ SomeMessages [SomeMessage MsgAvsPersonNo, text2message "/", SomeMessage MsgCompanyPersonalNumber, SomeMessage MsgAmbiguous] + [] -> return $ Left $ errMsg $ SomeMessage MsgUnknown + _ -> return $ Left $ errMsg $ SomeMessage MsgAmbiguous fieldParse _ _ = return $ Right Nothing