diff --git a/src/Stackage/Database.hs b/src/Stackage/Database.hs index 0d01865..60fb635 100644 --- a/src/Stackage/Database.hs +++ b/src/Stackage/Database.hs @@ -741,13 +741,13 @@ getSnapshotsForPackage -> m [(Snapshot, Text)] -- version getSnapshotsForPackage pname = run $ do pid <- getPackageId pname - sps <- selectList [SnapshotPackagePackage ==. pid] [] - fmap catMaybes $ forM sps $ \(Entity _ sp) -> do - let sid = snapshotPackageSnapshot sp - ms <- get sid - return $ case ms of - Nothing -> Nothing - Just s -> Just (s, snapshotPackageVersion sp) + fmap (map go) $ E.select $ E.from $ \(s, sp) -> do + E.where_ $ s E.^. SnapshotId E.==. sp E.^. SnapshotPackageSnapshot + E.&&. sp E.^. SnapshotPackagePackage E.==. E.val pid + E.orderBy [E.desc $ s E.^. SnapshotCreated] + return (s, sp E.^. SnapshotPackageVersion) + where + go (Entity _ snapshot, E.Value version) = (snapshot, version) -- | Count snapshots that belong to a specific SnapshotBranch countSnapshots :: (GetStackageDatabase m) => Maybe SnapshotBranch -> m Int diff --git a/templates/package-snapshots.hamlet b/templates/package-snapshots.hamlet index af47579..51919ed 100644 --- a/templates/package-snapshots.hamlet +++ b/templates/package-snapshots.hamlet @@ -6,7 +6,7 @@ $newline never

Back to #{toHtml pn} -
+ Package Snapshot diff --git a/templates/package.hamlet b/templates/package.hamlet index 1167622..2f5819a 100644 --- a/templates/package.hamlet +++ b/templates/package.hamlet @@ -49,6 +49,9 @@ $newline never This package is not currently in any snapshots. If you're interested in using it, we recommend # adding it to Stackage Nightly . Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks. + $else +

+ See all snapshots #{pn} appears in