diff --git a/messages/uniworx/de.msg b/messages/uniworx/de.msg index 9f3f4bf28..ce399d6a0 100644 --- a/messages/uniworx/de.msg +++ b/messages/uniworx/de.msg @@ -422,7 +422,7 @@ StudyTermsName: Studiengang StudyTermsShort: Studiengangkürzel StudyTermsChangeSuccess: Zuordnung Abschlüsse aktualisiert StudyDegreeChangeSuccess: Zuordnung Studiengänge aktualisiert -StudyCandidateIncidienc: Anmeldevorgang +StudyCandidateIncidence: Anmeldevorgang MailTestFormEmail: Email-Addresse MailTestFormLanguages: Spracheinstellungen diff --git a/src/Handler/Admin.hs b/src/Handler/Admin.hs index 19e2ef515..29622f29c 100644 --- a/src/Handler/Admin.hs +++ b/src/Handler/Admin.hs @@ -18,8 +18,9 @@ import Utils.Lens -- import qualified Data.Set as Set import qualified Data.Map as Map import Handler.Utils.Table.Cells -import qualified Database.Esqueleto as E import Database.Persist.Sql (fromSqlKey) +import qualified Database.Esqueleto as E +import Database.Esqueleto.Utils as E -- import Colonnade hiding (fromMaybe) -- import Yesod.Colonnade @@ -283,23 +284,32 @@ postAdminFeaturesR = do mkCandidateTable = let dbtIdent = "admin-termcandidate" :: Text - dbtStyle = def + dbtStyle = def { dbsFilterLayout = defaultDBSFilterLayout } dbtSQLQuery :: E.SqlExpr (Entity StudyTermCandidate) -> E.SqlQuery ( E.SqlExpr (Entity StudyTermCandidate)) dbtSQLQuery = return dbtRowKey = (E.^. StudyTermCandidateId) dbtProj = return dbtColonnade = dbColonnade $ mconcat - [ sortable (Just "termcandidate-key") (i18nCell MsgStudyTermsKey) (numCell . view (_dbrOutput . _entityVal . _studyTermCandidateKey)) - , sortable (Just "termcandidate-name") (i18nCell MsgStudyTermsName) (textCell . view (_dbrOutput . _entityVal . _studyTermCandidateName)) - , sortable (Just "termcandidate-incidence") (i18nCell MsgStudyTermsShort) (pathPieceCell . view (_dbrOutput . _entityVal . _studyTermCandidateIncidence)) + [ sortable (Just "termcandidate-key") (i18nCell MsgStudyTermsKey) (numCell . view (_dbrOutput . _entityVal . _studyTermCandidateKey)) + , sortable (Just "termcandidate-name") (i18nCell MsgStudyTermsName) (textCell . view (_dbrOutput . _entityVal . _studyTermCandidateName)) + , sortable (Just "termcandidate-incidence") (i18nCell MsgStudyCandidateIncidence) (pathPieceCell . view (_dbrOutput . _entityVal . _studyTermCandidateIncidence)) ] dbtSorting = Map.fromList [ ("termcandidate-key" , SortColumn (E.^. StudyTermCandidateKey)) , ("termcandidate-name" , SortColumn (E.^. StudyTermCandidateName)) , ("termcandidate-incidence", SortColumn (E.^. StudyTermCandidateIncidence)) ] - dbtFilter = mempty - dbtFilterUI = mempty + dbtFilter = Map.fromList + [ ("key", FilterColumn $ mkExactFilter (E.^. StudyTermCandidateKey)) + , ("name", FilterColumn $ mkContainsFilter (E.^. StudyTermCandidateName)) + , ("incidence", FilterColumn $ mkExactFilter (E.^. StudyTermCandidateIncidence)) -- TODO containts filter desired here + ] + dbtFilterUI = \mPrev -> mconcat + -- [ prismAForm (singletonFilter "key") mPrev $ aopt intField (fslI MsgStudyTermsKey) -- Typing problem exactFilter suffices here + [ prismAForm (singletonFilter "key") mPrev $ aopt (searchField False) (fslI MsgStudyTermsKey) + , prismAForm (singletonFilter "name") mPrev $ aopt (searchField False) (fslI MsgStudyTermsName) + , prismAForm (singletonFilter "incidence") mPrev $ aopt (searchField False) (fslI MsgStudyCandidateIncidence) + ] dbtParams = def psValidator = def & defaultSorting [SortAscBy "termcandidate-key", SortAscBy "termcandidate-name"] in dbTable psValidator DBTable{..}