diff --git a/messages/uniworx/categories/admin/de-de-formal.msg b/messages/uniworx/categories/admin/de-de-formal.msg index 5d0989696..45403eebe 100644 --- a/messages/uniworx/categories/admin/de-de-formal.msg +++ b/messages/uniworx/categories/admin/de-de-formal.msg @@ -67,6 +67,7 @@ BearerTokenExpiresTip: Wird der Ablaufzeitpunkt überschrieben und kein Ablaufze BearerTokenOverrideStart: Startzeitpunkt BearerTokenOverrideStartTip: Wird kein Startzeitpunkt angegeben, wird bei Verwendung des Tokens nur der Ablaufzeitpunkt überprüft. HeadingAdminTokens: Tokens ausstellen +UserUnknown: Unbekannter Benutzer:in #templates adminFeautures StudyFeaturesDegrees: Abschlüsse @@ -127,9 +128,11 @@ AdminProblemCreated: Erkannt AdminProblemInfo: Problembeschreibung AdminProblemsSolved n@Int: #{pluralDEeN n "Admin Problem"} als erledigt markiert AdminProblemsReopened n@Int: #{pluralDEeN n "Admin Problem"} erneut eröffnet -AdminProblemNewCompany: Neue Firma aus AVS automatisch erstellt; prüfen und ggf. Standardansprechpartner eintragen -AdminProblemSupervisorNewCompany b@Bool: Dieser Standardansprechpartner #{boolText mempty "mit Standardumleitung" b} wechselte zu neuer Firma +AdminProblemNewCompany: Neue Firma über AVS automatisch erstellt; prüfen und ggf. Standardansprechpartner eintragen +AdminProblemSupervisorNewCompany b@Bool: Standardansprechpartner #{boolText mempty "mit Standardumleitung" b} wechselte zu neuer Firma AdminProblemSupervisorLeftCompany b@Bool: Einziger Standardansprechpartner #{boolText mempty "mit Standardumleitung" b} dieses Fahrers wechselte zu neuer Firma +AdminProblemCompanySuperiorChange: Neuer firmenweiter Vorgesetzer. +AdminProblemCompanySuperiorPrevious: Ehemaliger Vorgesetzer: AdminProblemNewlyUnsupervised: Fahrer hat keinen Firmenansprechpartner mehr nach AVS Firmenwechsel zu Firma AdminProblemUser: Betroffener ProblemTableMarkSolved: Als erledigt markieren diff --git a/messages/uniworx/categories/admin/en-eu.msg b/messages/uniworx/categories/admin/en-eu.msg index 34560ab2e..58058188c 100644 --- a/messages/uniworx/categories/admin/en-eu.msg +++ b/messages/uniworx/categories/admin/en-eu.msg @@ -67,6 +67,7 @@ BearerTokenExpiresTip: If no expiration time is given, the token will not expire BearerTokenOverrideStart: Start time BearerTokenOverrideStartTip: If no start time is given, only the expiration time will be checked when the token is used. HeadingAdminTokens: Issue tokens +UserUnknown: User unknown #templates adminfeatures StudyFeaturesDegrees: Degrees @@ -128,8 +129,10 @@ AdminProblemInfo: Problem AdminProblemsSolved n: #{pluralENsN n "admin problem"} marked as solved AdminProblemsReopened n: #{pluralENsN n "admin problem"} reopened AdminProblemNewCompany: New company from AVS; verify and add default supervisors -AdminProblemSupervisorNewCompany b: This default company supervisor #{boolText mempty "with reroute" b} changed to new company +AdminProblemSupervisorNewCompany b: Default company supervisor #{boolText mempty "with reroute" b} changed to new company AdminProblemSupervisorLeftCompany b: Only default company supervisor #{boolText mempty "with reroute" b} for this user changed to new company +AdminProblemCompanySuperiorChange: New company wide superior. +AdminProblemCompanySuperiorPrevious: Previous superior: AdminProblemNewlyUnsupervised: Driver has no longer a company default supervisor after AVS update at new company AdminProblemUser: Affected ProblemTableMarkSolved: Mark done diff --git a/src/Audit/Types.hs b/src/Audit/Types.hs index e713b65e6..57473bfbb 100644 --- a/src/Audit/Types.hs +++ b/src/Audit/Types.hs @@ -185,7 +185,7 @@ data Transaction } | TransactionLmsStart { transactionQualification :: QualificationId - , transactionLmsIdent :: LmsIdent + , transactionLmsIdent :: LmsIdent , transactionLmsUser :: UserId , transactionLmsUserKey :: LmsUserId } @@ -216,7 +216,7 @@ data Transaction | TransactionQualificationUserEdit -- Note that a renewal always entails unblocking as well! { transactionUser :: UserId -- qualification holder that is updated , transactionQualificationUser :: QualificationUserId -- not really necessary, maybe remove? - , transactionQualification :: QualificationId + , transactionQualification :: QualificationId , transactionQualificationValidUntil :: Day , transactionQualificationScheduleRenewal :: Maybe Bool -- Maybe, because some update may leave it unchanged (also avoids DB Migration) , transactionNote :: Maybe Text @@ -265,7 +265,7 @@ data AdminProblem = AdminProblemNewCompany -- new company was noticed, presumably without supervisors { adminProblemCompany :: CompanyId } - | AdminProblemSupervisorNewCompany + | AdminProblemSupervisorNewCompany { adminProblemUser :: UserId -- a default supervisor has changed company , adminProblemCompany :: CompanyId -- old company where the user had default supervisor rights , adminProblemCompanyNew :: CompanyId -- new company of the user @@ -276,13 +276,18 @@ data AdminProblem , adminProblemCompany :: CompanyId -- old company , adminProblemSupervisorReroute :: Bool -- reroute included? } - | AdminProblemNewlyUnsupervised + | AdminProblemCompanySuperiorChange -- a company received a new superior user through AVS + { adminProblemUser :: UserId -- new superior user + , adminProblemCompany :: CompanyId -- affected company + , adminProblemUserOld :: Maybe UserId -- previous superior + } + | AdminProblemNewlyUnsupervised { adminProblemUser :: UserId -- user who had a supervisor but no longer has, due to user company change , adminProblemCompanyOld :: Maybe CompanyId -- old company , adminProblemCompanyNew :: CompanyId -- new company of the user } | AdminProblemUnknown -- miscellanous problem, just displaying text - { adminProblemText :: Text + { adminProblemText :: Text } deriving (Eq, Ord, Read, Show, Generic) diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index f15ddd5aa..a94af84d3 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -55,7 +55,7 @@ data ProblemTableActionData = ProblemTableMarkSolvedData deriving (Eq, Ord, Read, Show, Generic) --- Handlers +-- Handlers getAdminR :: Handler Html getAdminR = redirect AdminProblemsR @@ -63,7 +63,7 @@ getAdminProblemsR, postAdminProblemsR :: Handler Html getAdminProblemsR = handleAdminProblems Nothing handleAdminProblems :: Maybe Widget -> Handler Html -handleAdminProblems mbProblemTable = do +handleAdminProblems mbProblemTable = do now <- liftIO getCurrentTime let nowaday = utctDay now cutOffOldDays = 1 @@ -75,21 +75,21 @@ handleAdminProblems mbProblemTable = do msgErrorTooltip <- messageI Error MsgMessageError let flagError = messageTooltip . bool msgErrorTooltip msgSuccessTooltip - flagWarning = messageTooltip . bool msgWarningTooltip msgSuccessTooltip + flagWarning = messageTooltip . bool msgWarningTooltip msgSuccessTooltip flagNonZero :: Int -> Widget flagNonZero n | n <= 0 = flagError True - | otherwise = messageTooltip =<< handlerToWidget (messageI Error (MsgProblemsDriverSynch n)) + | otherwise = messageTooltip =<< handlerToWidget (messageI Error (MsgProblemsDriverSynch n)) (usersAreReachable, driversHaveAvsIds, rDriversHaveFs, noStalePrintJobs, noBadAPCids, (interfaceOks, interfaceTable)) <- runDB $ (,,,,,) - <$> areAllUsersReachable + <$> areAllUsersReachable <*> allDriversHaveAvsId now <*> allRDriversHaveFs now <*> (not <$> exists [PrintJobAcknowledged ==. Nothing, PrintJobCreated <. cutOffOldTime]) - <*> (not <$> exists [PrintAcknowledgeProcessed ==. False]) - <*> mkInterfaceLogTable flagError mempty + <*> (not <$> exists [PrintAcknowledgeProcessed ==. False]) + <*> mkInterfaceLogTable flagError mempty let interfacesBadNr = length $ filter (not . snd) interfaceOks - -- interfacesOk = all snd interfaceOks - + -- interfacesOk = all snd interfaceOks + diffLics <- try retrieveDifferingLicences >>= \case -- (Left (UnsupportedContentType "text/html" resp)) -> Left $ text2widget "Html received" (Left e) -> return $ Left $ text2widget $ tshow (e :: SomeException) @@ -118,13 +118,13 @@ handleAdminProblems mbProblemTable = do setTitleI MsgProblemsHeading $(widgetFile "admin-problems") -postAdminProblemsR = do - (problemLogRes, problemLogTable) <- runDB mkProblemLogTable +postAdminProblemsR = do + (problemLogRes, problemLogTable) <- runDB mkProblemLogTable formResult problemLogRes procProblems handleAdminProblems $ Just problemLogTable where procProblems :: (ProblemTableActionData, Set ProblemLogId) -> Handler () - procProblems (ProblemTableMarkSolvedData , pids) = actUpdate True pids + procProblems (ProblemTableMarkSolvedData , pids) = actUpdate True pids procProblems (ProblemTableMarkUnsolvedData, pids) = actUpdate False pids actUpdate markdone pids = do @@ -146,7 +146,7 @@ getProblemUnreachableR = do setTitleI MsgProblemsUnreachableHeading [whamlet|
- #{length unreachables} _{MsgProblemsUnreachableBody} + #{length unreachables} _{MsgProblemsUnreachableBody}