From aae52c21e9becd13c1fa0100ed5872a221047213 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 17 Nov 2014 12:22:20 +0200 Subject: [PATCH] Better caching of package list --- Handler/PackageList.hs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Handler/PackageList.hs b/Handler/PackageList.hs index af08c61..d08701a 100644 --- a/Handler/PackageList.hs +++ b/Handler/PackageList.hs @@ -7,16 +7,16 @@ import Import import Yesod.Core.Types (WidgetT (WidgetT), unWidgetT) getPackageListR :: Handler Html -getPackageListR = do - packages <- fmap (uniqueByKey . map (E.unValue***strip . E.unValue)) $ runDB $ - E.selectDistinct $ E.from $ \(u,m) -> do - E.where_ (m E.^. MetadataName E.==. u E.^. UploadedName) - E.orderBy [E.asc $ u E.^. UploadedName] - return $ (u E.^. UploadedName - ,m E.^. MetadataSynopsis) - defaultLayout $ do - setTitle "Package list" - cachedWidget (5 * 60) "package-list" $(widgetFile "package-list") +getPackageListR = defaultLayout $ do + setTitle "Package list" + cachedWidget (20 * 60) "package-list" $ do + packages <- fmap (uniqueByKey . map (E.unValue***strip . E.unValue)) $ handlerToWidget $ runDB $ + E.selectDistinct $ E.from $ \(u,m) -> do + E.where_ (m E.^. MetadataName E.==. u E.^. UploadedName) + E.orderBy [E.asc $ u E.^. UploadedName] + return $ (u E.^. UploadedName + ,m E.^. MetadataSynopsis) + $(widgetFile "package-list") where strip x = fromMaybe x (stripSuffix "." x) uniqueByKey = sortBy (comparing fst) . M.toList . M.fromList