diff --git a/src/Handler/LMS.hs b/src/Handler/LMS.hs index 7ec9be91b..c88cfb9ba 100644 --- a/src/Handler/LMS.hs +++ b/src/Handler/LMS.hs @@ -378,8 +378,9 @@ mkLmsTable isAdmin (Entity qid quali) acts cols psValidator = do dbtColonnade = cols dbtSorting = mconcat - [ single $ sortUserNameLink queryUser - , single $ sortUserEmail queryUser + [ single $ sortUserNameLink queryUser + , single $ sortUserEmail queryUser + , single $ sortUserMatriclenr queryUser , single ("valid-until" , SortColumnNullsInv $ queryQualUser >>> (E.^. QualificationUserValidUntil)) , single ("last-refresh" , SortColumnNullsInv $ queryQualUser >>> (E.^. QualificationUserLastRefresh)) , single ("first-held" , SortColumnNullsInv $ queryQualUser >>> (E.^. QualificationUserFirstHeld)) @@ -526,6 +527,7 @@ postLmsR sid qsh = do (\(E.Value cmpName, E.Value cmpSpr) -> text2markup (CI.original cmpName) <> bool mempty icnSuper cmpSpr) <$> companies' icnSuper = text2markup " " <> icon IconSupervisor pure $ toWgt $ mconcat companies + , colUserMatriclenr , sortable (Just "valid-until") (i18nCell MsgLmsQualificationValidUntil) $ \( view $ resultQualUser . _entityVal . _qualificationUserValidUntil -> d) -> dayCell d , sortable (Just "last-refresh") (i18nCell MsgTableQualificationLastRefresh)$ \( view $ resultQualUser . _entityVal . _qualificationUserLastRefresh -> d) -> dayCell d , sortable (Just "first-held") (i18nCell MsgTableQualificationFirstHeld) $ \( view $ resultQualUser . _entityVal . _qualificationUserFirstHeld -> d) -> dayCell d diff --git a/src/Handler/Qualification.hs b/src/Handler/Qualification.hs index 11669a68c..f05f126b4 100644 --- a/src/Handler/Qualification.hs +++ b/src/Handler/Qualification.hs @@ -307,8 +307,9 @@ mkQualificationTable isAdmin (Entity qid quali) acts cols psValidator = do dbtProj = dbtProjId -- FilteredPostId dbtColonnade = cols dbtSorting = mconcat - [ single $ sortUserNameLink queryUser - , single $ sortUserEmail queryUser + [ single $ sortUserNameLink queryUser + , single $ sortUserEmail queryUser + , single $ sortUserMatriclenr queryUser , single ("valid-until" , SortColumn $ queryQualUser >>> (E.^. QualificationUserValidUntil)) , single ("last-refresh" , SortColumn $ queryQualUser >>> (E.^. QualificationUserLastRefresh)) , single ("blocked-due" , SortColumnNeverNull $ queryQualUser >>> (E.^. QualificationUserBlockedDue)) @@ -449,6 +450,7 @@ postQualificationR sid qsh = do (\(E.Value cmpName, E.Value cmpSpr) -> text2markup (CI.original cmpName) <> bool mempty icnSuper cmpSpr) <$> companies' icnSuper = text2markup " " <> icon IconSupervisor pure $ toWgt $ mconcat companies + , guardMonoid isAdmin colUserMatriclenr , sortable (Just "valid-until") (i18nCell MsgLmsQualificationValidUntil) $ \( view $ resultQualUser . _entityVal . _qualificationUserValidUntil -> d) -> dayCell d , sortable (Just "last-refresh") (i18nCell MsgTableQualificationLastRefresh)$ \( view $ resultQualUser . _entityVal . _qualificationUserLastRefresh -> d) -> dayCell d , sortable (Just "blocked-due") (i18nCell MsgTableQualificationBlockedDue & cellTooltip MsgTableQualificationBlockedTooltipSimple @@ -478,6 +480,7 @@ postQualificationR sid qsh = do (action, selectedUsers) | isBlockAct action && (isAdmin || action == QualificationActBlockSupervisorData) -> do now <- liftIO getCurrentTime let nowaday = utctDay now + selUserIds = Set.toList selectedUsers qubr = case action of QualificationActUnblockData -> Nothing QualificationActBlockSupervisorData -> Just $ mkQualificationBlocked QualificationBlockReturnedByCompany nowaday @@ -486,7 +489,11 @@ postQualificationR sid qsh = do , qualificationBlockedReason = qualTableActBlockReason } _ -> error "Handle.Qualification.isBlockAct returned non-block action" - oks <- runDB $ qualificationUserBlocking qid (Set.toList selectedUsers) qubr + + oks <- runDB $ do + -- deleteWhere [UserSupervisorUser <-. selUserIds] + -- deleteWhere [UserCompanyUser <-. selUserIds] + qualificationUserBlocking qid selUserIds qubr let nrq = length selectedUsers warnLevel = if | oks < 0 -> Error