From e0fe371971815cf447fd81883832ca719db45946 Mon Sep 17 00:00:00 2001 From: SJost Date: Thu, 24 Jan 2019 18:05:21 +0100 Subject: [PATCH] Statistics for SheetList not working anymore --- src/Handler/Sheet.hs | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Handler/Sheet.hs b/src/Handler/Sheet.hs index 9ac923421..7baf5243f 100644 --- a/src/Handler/Sheet.hs +++ b/src/Handler/Sheet.hs @@ -221,11 +221,13 @@ getSheetListR tid ssh csh = do $ \DBRow{dbrOutput=(Entity _ Sheet{..}, _, mbSub)} -> case mbSub of Nothing -> mempty (Just (Entity sid Submission{..})) -> - let mkCid = encrypt sid + let _stats = sheetTypeSum sheetType submissionRatingPoints -- for statistics over all shown rows + mkCid = encrypt sid mkRoute = do cid' <- mkCid return $ CSubmissionR tid ssh csh sheetName cid' CorrectionR in anchorCellM mkRoute $(widgetFile "widgets/rating") + , sortable Nothing -- (Just "percent") (i18nCell MsgRatingPercent) $ \DBRow{dbrOutput=(Entity _ Sheet{sheetType=sType}, _, mbSub)} -> case mbSub of @@ -242,8 +244,7 @@ getSheetListR tid ssh csh = do psValidator = def & defaultSorting [SortDescBy "submission-since"] - (table,raw_statistics) <- runDB $ liftA2 (,) - (dbTableWidget' psValidator DBTable + (raw_statistics,table) <- runDB $ dbTableWidget psValidator DBTable { dbtColonnade = sheetCol , dbtSQLQuery = \dt@(sheet `E.LeftOuterJoin` (submission `E.InnerJoin` _submissionUser)) -> sheetData dt *> return (sheet, lastSheetEdit sheet, submission) @@ -282,18 +283,16 @@ getSheetListR tid ssh csh = do , dbtParams = def , dbtIdent = "sheets" :: Text } - ) ( - -- Collect summary over all Sheets, not just the ones shown due to pagination: - do - rows <- E.select $ E.from $ \dt@(sheet `E.LeftOuterJoin` (submission `E.InnerJoin` _submissionUser)) -> - sheetData dt *> return (sheet E.^. SheetName, sheet E.^. SheetType, submission E.?. SubmissionRatingPoints) - flip filterM rows (\(E.Value sheetName, _, _) -> sheetFilter sheetName) - ) + -- ) ( -- !!!DEPRECTAED!!! Summary only over shown rows !!! + -- -- Collect summary over all Sheets, not just the ones shown due to pagination: + -- do + -- rows <- E.select $ E.from $ \dt@(sheet `E.LeftOuterJoin` (submission `E.InnerJoin` _submissionUser)) -> + -- sheetData dt *> return (sheet E.^. SheetName, sheet E.^. SheetType, submission E.?. SubmissionRatingPoints) + -- flip filterM rows (\(E.Value sheetName, _, _) -> sheetFilter sheetName) + -- ) - let statistics = - gradeSummaryWidget MsgSheetGradingSummaryTitle $ - foldMap (\(_, E.Value sheetType, E.Value mbPts) -> sheetTypeSum sheetType (join mbPts)) - raw_statistics + let statistics = gradeSummaryWidget MsgSheetGradingSummaryTitle raw_statistics -- only over shown rows + -- foldMap (\(_, E.Value sheetType, E.Value mbPts) -> sheetTypeSum sheetType (join mbPts)) defaultLayout $ do $(widgetFile "sheetList")