Favourites are pruned now

This commit is contained in:
SJost 2018-04-04 09:17:26 +02:00
parent 2dde6c67bc
commit 272c61b512
4 changed files with 20 additions and 2 deletions

View File

@ -38,7 +38,9 @@ ldap:
password: "_env:LDAPPW:"
basename: "_env:LDAPBN:"
userDefaultFavourites: 12
cryptoid-keyfile: "_env:CRYPTOID_KEYFILE:cryptoid_key.bf"
copyright: Insert copyright statement here
copyright: ©Institute for Informatics, LMU Munich
#analytics: UA-YOURCODE

1
models
View File

@ -4,6 +4,7 @@ User
matrikelnummer Text Maybe
email Text
displayName Text
maxFavourites Int default=12
UniqueAuthentication plugin ident
UserAdmin
user UserId

View File

@ -155,11 +155,20 @@ instance Yesod UniWorX where
uid <- MaybeT maybeAuthId
now <- liftIO $ getCurrentTime
void . lift . runDB . runMaybeT $ do
cid <- MaybeT . getKeyBy $ CourseTermShort tid csh
cid <- MaybeT . getKeyBy $ CourseTermShort tid csh
user <- MaybeT $ get uid
-- update Favorites
lift $ upsertBy
(UniqueCourseFavourite uid cid)
(CourseFavourite uid now cid)
[CourseFavouriteTime =. now]
-- prune Favorites to user-defined size
oldFavs <- lift $ selectKeysList
[ CourseFavouriteUser ==. uid]
[ Desc CourseFavouriteTime
, OffsetBy $ userMaxFavourites user
]
lift $ mapM delete oldFavs
_other -> return ()
return res
@ -479,6 +488,7 @@ instance YesodAuth UniWorX where
userDisplayName <- maybe (throwError $ ServerError "Could not retrieve user name") return userDisplayName'
let
userMaxFavourites = 12 -- TODO: appDefaultFavourites appSettings
newUser = User{..}
userUpdate = [ UserMatrikelnummer =. userMatrikelnummer
, UserDisplayName =. userDisplayName

View File

@ -59,6 +59,9 @@ data AppSettings = AppSettings
, appSkipCombining :: Bool
-- ^ Perform no stylesheet/script combining
, appDefaultFavourites :: Int
-- ^ Initial Value for remembered Favourites
-- Example app-specific configuration values.
, appCopyright :: Text
-- ^ Copyright text to appear in the footer of the page
@ -94,6 +97,8 @@ instance FromJSON AppSettings where
appMutableStatic <- o .:? "mutable-static" .!= defaultDev
appSkipCombining <- o .:? "skip-combining" .!= defaultDev
appDefaultFavourites <- o .: "userDefaultFavourites"
appCopyright <- o .: "copyright"
appAnalytics <- o .:? "analytics"
appCryptoIDKeyFile <- o .: "cryptoid-keyfile"