Fix sorting new studyterms
This commit is contained in:
parent
df0b36a01b
commit
bf083c9854
38
FragenSJ.txt
38
FragenSJ.txt
@ -1,38 +0,0 @@
|
|||||||
** Sicherheitsabfragen?
|
|
||||||
- Verschlüsselung des Zugriffs?
|
|
||||||
|
|
||||||
- SDelR tid csh sn : GET zeigt Sicherheitsabfrage
|
|
||||||
POST löscht.
|
|
||||||
Ist das so sinnvoll?
|
|
||||||
Sicherheitsabfrage als PopUpMessage?
|
|
||||||
|
|
||||||
- Utils.getKeyBy404 effiziente Variante, welche nur den Key liefert? Esq?
|
|
||||||
(Sheet.hs -> fetchSheet)
|
|
||||||
|
|
||||||
- Handler.Sheet.postSDelR: deleteCascade für Files? Klappt das?
|
|
||||||
Kann man abfragen, was bei deleteCascade alles gelöscht wird?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
** i18n:
|
|
||||||
- i18n der
|
|
||||||
Links -> MenuItems verwenden wie bisher
|
|
||||||
Page Titles -> setTitleI
|
|
||||||
Buttons? -> Kann leicht geändert werden!
|
|
||||||
Was ist mit einfachen Text Feldern, z.B. die Beschriftung von Knöpfen wie in Handler.Course.getTermCourseListR, Zeile 66 "pageActions" für menuItemLabel?
|
|
||||||
|
|
||||||
** Page pageActions - Berechtigungen prüfen?
|
|
||||||
=> Eigener Constructor statt NavbarLeft/Right?!
|
|
||||||
|
|
||||||
|
|
||||||
** FORMS
|
|
||||||
3 - Sheets: Multiple Files -> wird später gemacht
|
|
||||||
- Versionen für Studenten/Korrektoren/Lecturers/Admins
|
|
||||||
-> ja über isAuthorizedDB siehe unten,
|
|
||||||
-> Lecturer kann gleich auf Edit-Seite gehen wie in UniWorX
|
|
||||||
|
|
||||||
|
|
||||||
Freischaltung von Teilen einer Webseite:
|
|
||||||
- Freigabe der Links über Authorisierung in der Foundation
|
|
||||||
- Anzeige der Links nach Authorisierung wie in menItemAccessCallback
|
|
||||||
- möglichst direkt isAuthorizedDB in einem runDB aufrufen!!!
|
|
||||||
@ -7,6 +7,7 @@ module Database.Esqueleto.Utils
|
|||||||
, SqlIn(..)
|
, SqlIn(..)
|
||||||
, mkExactFilter, mkContainsFilter
|
, mkExactFilter, mkContainsFilter
|
||||||
, anyFilter
|
, anyFilter
|
||||||
|
, inList
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import ClassyPrelude.Yesod hiding (isInfixOf, any, all)
|
import ClassyPrelude.Yesod hiding (isInfixOf, any, all)
|
||||||
@ -100,3 +101,11 @@ anyFilter :: (Foldable f) => f (t -> Set.Set Text-> E.SqlExpr (E.Value Bool))
|
|||||||
anyFilter fltrs needle criterias = F.foldr aux false fltrs
|
anyFilter fltrs needle criterias = F.foldr aux false fltrs
|
||||||
where
|
where
|
||||||
aux fltr acc = fltr needle criterias E.||. acc
|
aux fltr acc = fltr needle criterias E.||. acc
|
||||||
|
|
||||||
|
-- | Convenience for Sorting by a Column being element of a certain List
|
||||||
|
-- Does not work, may produce esqueleto error
|
||||||
|
-- `unsafeSqlBinOp: non-id/composite keys not expected here` somehow
|
||||||
|
inList :: (PersistField typ, PersistEntity val)
|
||||||
|
=> EntityField val typ -> [typ] -> E.SqlExpr (Entity val) -> E.SqlExpr (E.Value Bool)
|
||||||
|
inList _column [] = const $ E.val True
|
||||||
|
inList column l = \row -> row E.^. column `E.in_` E.valList l
|
||||||
|
|||||||
@ -404,8 +404,8 @@ postAdminFeaturesR = do
|
|||||||
]
|
]
|
||||||
dbtSorting = Map.fromList
|
dbtSorting = Map.fromList
|
||||||
[ ("key" , SortColumn (E.^. StudyTermsKey))
|
[ ("key" , SortColumn (E.^. StudyTermsKey))
|
||||||
, ("isnew" , SortColumn (\studyTerm -> studyTerm E.^. StudyTermsId `E.in_` E.valList (Set.toList newKeys)))
|
, ("isnew" , SortColumn (StudyTermsKey `E.inList` (unStudyTermsKey <$> Set.toList newKeys)))
|
||||||
, ("isbad" , SortColumn (\studyTerm -> studyTerm E.^. StudyTermsId `E.in_` E.valList (Set.toList badKeys)))
|
, ("isbad" , SortColumn (StudyTermsKey `E.inList` (unStudyTermsKey <$> Set.toList badKeys)))
|
||||||
, ("name" , SortColumn (E.^. StudyTermsName))
|
, ("name" , SortColumn (E.^. StudyTermsName))
|
||||||
, ("short" , SortColumn (E.^. StudyTermsShorthand))
|
, ("short" , SortColumn (E.^. StudyTermsShorthand))
|
||||||
]
|
]
|
||||||
@ -413,7 +413,9 @@ postAdminFeaturesR = do
|
|||||||
dbtFilterUI = mempty
|
dbtFilterUI = mempty
|
||||||
dbtParams = def { dbParamsFormAction = Just . SomeRoute $ AdminFeaturesR :#: ("admin-studyterms-table-wrapper" :: Text)
|
dbtParams = def { dbParamsFormAction = Just . SomeRoute $ AdminFeaturesR :#: ("admin-studyterms-table-wrapper" :: Text)
|
||||||
}
|
}
|
||||||
psValidator = def & defaultSorting [SortAscBy "name", SortAscBy "short", SortAscBy "key"]
|
psValidator = def
|
||||||
|
-- & defaultSorting [SortAscBy "name", SortAscBy "short", SortAscBy "key"]
|
||||||
|
& defaultSorting [SortDescBy "isbad", SortDescBy "isnew", SortAscBy "key"]
|
||||||
in dbTable psValidator DBTable{..}
|
in dbTable psValidator DBTable{..}
|
||||||
|
|
||||||
mkCandidateTable =
|
mkCandidateTable =
|
||||||
|
|||||||
Reference in New Issue
Block a user