diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2017-03-16 14:41:08 +0100 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2017-03-16 14:41:08 +0100 |
| commit | 37a032885b24bfaef9c493ff95294b65146b0f89 (patch) | |
| tree | 42fc074e4bba496c48c0fac472a4d8b829725d92 | |
| parent | ab9dd6209e26ad9856e8cf41c1597a01073d4053 (diff) | |
| download | bar-37a032885b24bfaef9c493ff95294b65146b0f89.tar bar-37a032885b24bfaef9c493ff95294b65146b0f89.tar.gz bar-37a032885b24bfaef9c493ff95294b65146b0f89.tar.bz2 bar-37a032885b24bfaef9c493ff95294b65146b0f89.tar.xz bar-37a032885b24bfaef9c493ff95294b65146b0f89.zip | |
Even fancier sorting
| -rw-r--r-- | Handler/Common.hs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Handler/Common.hs b/Handler/Common.hs index f40375a..90e373a 100644 --- a/Handler/Common.hs +++ b/Handler/Common.hs | |||
| @@ -265,10 +265,11 @@ kinds = do | |||
| 265 | type Sort a = a -> a | 265 | type Sort a = a -> a |
| 266 | 266 | ||
| 267 | stockSort :: Sort [WithType (Entity Item)] | 267 | stockSort :: Sort [WithType (Entity Item)] |
| 268 | stockSort = concat . map (sortOn $ entityVal . typedVal) . sortGroups . group | 268 | stockSort = concat . map sortInGroup . sortGroups . group |
| 269 | where | 269 | where |
| 270 | group = groupBy ((==) `on` valType) . sortOn valType | 270 | group = groupBy ((==) `on` valType) . sortOn valType |
| 271 | sortGroups = sortOn (fmap minimum . fromNullable . map (entityVal . typedVal)) | 271 | sortGroups = sortOn (fmap minimum . fromNullable . map (entityVal . typedVal)) |
| 272 | sortInGroup = concat . map (sortOn $ entityVal . typedVal) . sortOn (fmap minimum . fromNullable . map (entityVal . typedVal)) . groupBy ((==) `on` (itemNormKind . entityVal . typedVal)) . sortOn (itemNormKind . entityVal . typedVal) | ||
| 272 | 273 | ||
| 273 | referenceSort :: Sort [WithType (Entity Reference)] | 274 | referenceSort :: Sort [WithType (Entity Reference)] |
| 274 | referenceSort = sortBy referenceOrdering | 275 | referenceSort = sortBy referenceOrdering |
