module Jobs.Handler.SendNotification.CorrectionsAssigned ( dispatchNotificationCorrectionsAssigned ) where import Import import Utils.Lens import Handler.Utils.Mail import Text.Hamlet import qualified Data.CaseInsensitive as CI dispatchNotificationCorrectionsAssigned :: UserId -> SheetId -> UserId -> Handler () dispatchNotificationCorrectionsAssigned nUser nSheet jRecipient = do (Course{..}, Sheet{..}, nbrSubs) <- liftHandlerT . runDB $ do sheet <- getJust nSheet course <- belongsToJust sheetCourse sheet nbrSubs <- count [ SubmissionSheet ==. nSheet , SubmissionRatingBy ==. Just nUser , SubmissionRatingTime ==. Nothing ] return (course, sheet, nbrSubs) when (nbrSubs > 0) . userMailT jRecipient $ do setSubjectI $ MsgMailSubjectSheetActive courseShorthand sheetName MsgRenderer mr <- getMailMsgRenderer let termDesc = mr . ShortTermIdentifier $ unTermKey courseTerm tid = courseTerm ssh = courseSchool csh = courseShorthand shn = sheetName addAlternatives $ do let editNotifications = $(ihamletFile "templates/mail/editNotifications.hamlet") providePreferredAlternative ($(ihamletFile "templates/mail/correctionsAssigned.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))