chore(qualifications): workaround for pagination error
This commit is contained in:
parent
a97c8168da
commit
d8d7b8ccc5
@ -23,4 +23,5 @@ AvsLicenceRollfeld: Rollfeld Fahrberechtigung
|
|||||||
|
|
||||||
PaginationSize: Einträge pro Seite
|
PaginationSize: Einträge pro Seite
|
||||||
PaginationPage: Angzeigte Seite
|
PaginationPage: Angzeigte Seite
|
||||||
PaginationError: Paginierung Parameter dürfen nicht negativ sein
|
PaginationError: Paginierung Parameter dürfen nicht negativ sein
|
||||||
|
PaginationWorkaround n@Int64: Hinweis: Die Tabelle ist momentan auf maximal #{n} Zeilen beschränkt aufgrund eines Programmierfehlers in der Paginierungsautomatik. Wir hoffen dieses Problem möglichst bald in einer der kommenden Versionen lösen zu können.
|
||||||
@ -23,4 +23,5 @@ AvsLicenceRollfeld: Maneuvering area driving licence
|
|||||||
|
|
||||||
PaginationSize: Rows per Page
|
PaginationSize: Rows per Page
|
||||||
PaginationPage: Page to show
|
PaginationPage: Page to show
|
||||||
PaginationError: Pagination parameter must not be negative
|
PaginationError: Pagination parameter must not be negative
|
||||||
|
PaginationWorkaround n: Note: the table is currently limited to at most #{n} rows due to an unfortunate problem with the pagination mechanic. We hope the resolve the issue soon in a following release.
|
||||||
@ -43,7 +43,7 @@ data PaginationParameters = PaginationParameters { pagLimit, pagOffset:: Int64 }
|
|||||||
deriving (Eq, Show)
|
deriving (Eq, Show)
|
||||||
|
|
||||||
instance Default PaginationParameters where
|
instance Default PaginationParameters where
|
||||||
def = PaginationParameters { pagLimit = 100, pagOffset = 0}
|
def = PaginationParameters { pagLimit = 500, pagOffset = 0}
|
||||||
|
|
||||||
makePaginationForm :: Maybe PaginationParameters -> Form PaginationParameters
|
makePaginationForm :: Maybe PaginationParameters -> Form PaginationParameters
|
||||||
makePaginationForm tmpl = identifyForm FIDPaginationWorkaround . validateForm validatePaginationForm $ \html ->
|
makePaginationForm tmpl = identifyForm FIDPaginationWorkaround . validateForm validatePaginationForm $ \html ->
|
||||||
|
|||||||
@ -252,16 +252,17 @@ isExpiryAct :: QualificationTableActionData -> Bool -- const true, but this may
|
|||||||
isExpiryAct QualificationActExpireData = True
|
isExpiryAct QualificationActExpireData = True
|
||||||
isExpiryAct QualificationActUnexpireData = True
|
isExpiryAct QualificationActUnexpireData = True
|
||||||
|
|
||||||
qualificationTableQuery :: QualificationId -> (_ -> E.SqlExpr (E.Value Bool)) -> QualificationTableExpr
|
qualificationTableQuery :: QualificationId -> (_ -> E.SqlExpr (E.Value Bool)) -> Bool -> QualificationTableExpr
|
||||||
-> E.SqlQuery ( E.SqlExpr (Entity QualificationUser)
|
-> E.SqlQuery ( E.SqlExpr (Entity QualificationUser)
|
||||||
, E.SqlExpr (Entity User)
|
, E.SqlExpr (Entity User)
|
||||||
, E.SqlExpr (Maybe (Entity LmsUser))
|
, E.SqlExpr (Maybe (Entity LmsUser))
|
||||||
)
|
)
|
||||||
qualificationTableQuery qid fltr (qualUser `E.InnerJoin` user `E.LeftOuterJoin` lmsUser) = do
|
qualificationTableQuery qid fltr isAdmin (qualUser `E.InnerJoin` user `E.LeftOuterJoin` lmsUser) = do
|
||||||
E.on $ user E.^. UserId E.=?. lmsUser E.?. LmsUserUser
|
E.on $ user E.^. UserId E.=?. lmsUser E.?. LmsUserUser
|
||||||
E.&&. E.val qid E.=?. lmsUser E.?. LmsUserQualification -- NOTE: condition was once erroneously placed in where-clause, which does not work
|
E.&&. E.val qid E.=?. lmsUser E.?. LmsUserQualification -- NOTE: condition was once erroneously placed in where-clause, which does not work
|
||||||
E.on $ user E.^. UserId E.==. qualUser E.^. QualificationUserUser
|
E.on $ user E.^. UserId E.==. qualUser E.^. QualificationUserUser
|
||||||
E.where_ $ fltr qualUser E.&&. (E.val qid E.==. qualUser E.^. QualificationUserQualification)
|
E.where_ $ fltr qualUser E.&&. (E.val qid E.==. qualUser E.^. QualificationUserQualification)
|
||||||
|
when isAdmin $ E.limit 2000 -- WORKAROUND Pagination Bug
|
||||||
return (qualUser, user, lmsUser)
|
return (qualUser, user, lmsUser)
|
||||||
|
|
||||||
|
|
||||||
@ -286,7 +287,7 @@ mkQualificationTable isAdmin (Entity qid quali) acts cols psValidator = do
|
|||||||
dbtIdent :: Text
|
dbtIdent :: Text
|
||||||
dbtIdent = "qualification"
|
dbtIdent = "qualification"
|
||||||
fltrSvs = if isAdmin then const E.true else \quser -> quser E.^. QualificationUserUser `Ex.in_` E.vals svs
|
fltrSvs = if isAdmin then const E.true else \quser -> quser E.^. QualificationUserUser `Ex.in_` E.vals svs
|
||||||
dbtSQLQuery q = qualificationTableQuery qid fltrSvs q
|
dbtSQLQuery q = qualificationTableQuery qid fltrSvs isAdmin q
|
||||||
dbtRowKey = queryUser >>> (E.^. UserId)
|
dbtRowKey = queryUser >>> (E.^. UserId)
|
||||||
dbtProj = dbtProjFilteredPostId
|
dbtProj = dbtProjFilteredPostId
|
||||||
dbtColonnade = cols
|
dbtColonnade = cols
|
||||||
|
|||||||
@ -10,6 +10,7 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
<p>
|
<p>
|
||||||
Momentan werden aus Effizienzgründen alle Tabellen beschnitten und abgekürzt. #
|
Momentan werden aus Effizienzgründen alle Tabellen beschnitten und abgekürzt. #
|
||||||
Auch die Funktion zum Import unbekannter Führerscheininhaber ist derzeit auf ein paar Hundert beschränkt.
|
Auch die Funktion zum Import unbekannter Führerscheininhaber ist derzeit auf ein paar Hundert beschränkt.
|
||||||
|
$# _{MsgPaginationWorkaround (pagLimit pagResult) }
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2>
|
<h2>
|
||||||
|
|||||||
@ -37,5 +37,8 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
#{icon IconNotificationError}
|
#{icon IconNotificationError}
|
||||||
_{MsgLmsErrorNoRefreshElearning}
|
_{MsgLmsErrorNoRefreshElearning}
|
||||||
|
|
||||||
^{lmsTable}
|
<p>
|
||||||
|
_{MsgPaginationWorkaround nlimit}
|
||||||
|
<p>
|
||||||
|
^{lmsTable}
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,9 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
<p>
|
<p>
|
||||||
#{icon IconNotificationError}
|
#{icon IconNotificationError}
|
||||||
_{MsgLmsErrorNoRefreshElearning}
|
_{MsgLmsErrorNoRefreshElearning}
|
||||||
|
|
||||||
^{qualificationTable}
|
|
||||||
|
|
||||||
|
$if isAdmin
|
||||||
|
<p>
|
||||||
|
_{MsgPaginationWorkaround 2000}
|
||||||
|
<p>
|
||||||
|
^{qualificationTable}
|
||||||
Reference in New Issue
Block a user