Changing Favourite Setting immediately deletes superfluous favorites.

This commit is contained in:
SJost 2018-06-26 18:22:16 +02:00
parent 2525ad553f
commit 5103974980
2 changed files with 13 additions and 4 deletions

View File

@ -417,7 +417,7 @@ instance Yesod UniWorX where
[ Desc CourseFavouriteTime
, OffsetBy $ userMaxFavourites user
]
lift $ mapM delete oldFavs
lift $ mapM_ delete oldFavs
_other -> return ()
return res

View File

@ -47,9 +47,18 @@ getProfileR = do
((res,formWidget), formEnctype) <- runFormPost $ makeSettingForm settingsTemplate
case res of
(FormSuccess SettingsForm{..}) -> do
runDB $ update uid [ UserMaxFavourites =. stgMaxFavourties
, UserTheme =. stgTheme
]
runDB $ do
update uid [ UserMaxFavourites =. stgMaxFavourties
, UserTheme =. stgTheme
]
when (stgMaxFavourties < userMaxFavourites) $ do
-- prune Favourites to user-defined size
oldFavs <- selectKeysList [ CourseFavouriteUser ==. uid]
[ Desc CourseFavouriteTime
, OffsetBy $ stgMaxFavourties
]
mapM_ delete oldFavs
addMessageI "info" $ MsgSettingsUpdate
(FormFailure msgs) -> forM_ msgs $ (addMessage "warning") . toHtml
_ -> return ()