Favourites are pruned now
This commit is contained in:
parent
2dde6c67bc
commit
272c61b512
@ -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
1
models
@ -4,6 +4,7 @@ User
|
||||
matrikelnummer Text Maybe
|
||||
email Text
|
||||
displayName Text
|
||||
maxFavourites Int default=12
|
||||
UniqueAuthentication plugin ident
|
||||
UserAdmin
|
||||
user UserId
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user