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
|
||||
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
|
||||
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)
|
||||
|
||||
instance Default PaginationParameters where
|
||||
def = PaginationParameters { pagLimit = 100, pagOffset = 0}
|
||||
def = PaginationParameters { pagLimit = 500, pagOffset = 0}
|
||||
|
||||
makePaginationForm :: Maybe PaginationParameters -> Form PaginationParameters
|
||||
makePaginationForm tmpl = identifyForm FIDPaginationWorkaround . validateForm validatePaginationForm $ \html ->
|
||||
|
||||
@ -252,16 +252,17 @@ isExpiryAct :: QualificationTableActionData -> Bool -- const true, but this may
|
||||
isExpiryAct QualificationActExpireData = 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.SqlExpr (Entity User)
|
||||
, 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.&&. 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.where_ $ fltr qualUser E.&&. (E.val qid E.==. qualUser E.^. QualificationUserQualification)
|
||||
when isAdmin $ E.limit 2000 -- WORKAROUND Pagination Bug
|
||||
return (qualUser, user, lmsUser)
|
||||
|
||||
|
||||
@ -286,7 +287,7 @@ mkQualificationTable isAdmin (Entity qid quali) acts cols psValidator = do
|
||||
dbtIdent :: Text
|
||||
dbtIdent = "qualification"
|
||||
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)
|
||||
dbtProj = dbtProjFilteredPostId
|
||||
dbtColonnade = cols
|
||||
|
||||
@ -10,6 +10,7 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
<p>
|
||||
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.
|
||||
$# _{MsgPaginationWorkaround (pagLimit pagResult) }
|
||||
|
||||
<section>
|
||||
<h2>
|
||||
|
||||
@ -37,5 +37,8 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#{icon IconNotificationError}
|
||||
_{MsgLmsErrorNoRefreshElearning}
|
||||
|
||||
^{lmsTable}
|
||||
<p>
|
||||
_{MsgPaginationWorkaround nlimit}
|
||||
<p>
|
||||
^{lmsTable}
|
||||
|
||||
|
||||
@ -36,6 +36,9 @@ $# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
<p>
|
||||
#{icon IconNotificationError}
|
||||
_{MsgLmsErrorNoRefreshElearning}
|
||||
|
||||
^{qualificationTable}
|
||||
|
||||
$if isAdmin
|
||||
<p>
|
||||
_{MsgPaginationWorkaround 2000}
|
||||
<p>
|
||||
^{qualificationTable}
|
||||
Loading…
Reference in New Issue
Block a user