From 3e848976df45fc02bf9254e72abb87479c894b84 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Tue, 8 Nov 2022 12:25:49 +0100 Subject: [PATCH] chore(mail): supervisor email reroute working --- src/Handler/Utils/Mail.hs | 50 +++++++++++++++---------------- src/Jobs/Handler/SendTestEmail.hs | 9 ++++-- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/Handler/Utils/Mail.hs b/src/Handler/Utils/Mail.hs index d48ecdfa0..810d6e095 100644 --- a/src/Handler/Utils/Mail.hs +++ b/src/Handler/Utils/Mail.hs @@ -14,7 +14,7 @@ module Handler.Utils.Mail import Import import Handler.Utils.Pandoc import Handler.Utils.Files -import Handler.Utils.Widgets (nameHtml') +import Handler.Utils.Widgets (nameHtml') -- TODO: how to use name widget here? import qualified Data.CaseInsensitive as CI @@ -22,9 +22,8 @@ import qualified Data.Conduit.Combinators as C import qualified Text.Pandoc as P -import qualified Text.Hamlet as Hamlet (Translate) +import qualified Text.Hamlet as Hamlet import qualified Text.Shakespeare as Shakespeare (RenderUrl) -import qualified Text.CI as CI addRecipientsDB :: ( MonadMail m @@ -56,42 +55,43 @@ userMailT :: ( MonadHandler m , MonadUnliftIO m ) => UserId -> MailT m () -> m () userMailT uid mAct = do - -- now <- liftIO getCurrentTime - underling <- liftHandler . runDB $ getJust uid - superVs <- liftHandler . runDB $ selectList [UserSupervisorUser ==. uid, UserSupervisorRerouteNotifications ==. True] [] - let receivers = if null superVs - then [uid] - else userSupervisorSupervisor . entityVal <$> superVs - undercopy = uid `elem` receivers + (underling, receivers) <- liftHandler . runDB $ do + underling <- getJustEntity uid + superVs <- selectList [UserSupervisorUser ==. uid, UserSupervisorRerouteNotifications ==. True] [] + let superIds = userSupervisorSupervisor . entityVal <$> superVs + supers <- if null superIds then pure [underling] else selectList [UserId <-. superIds] [] + return (underling, if null supers then [underling] else supers) + let undercopy = uid `elem` (entityKey <$> receivers) undername = underling ^. _userDisplayName -- nameHtml' underling undermail = CI.original $ underling ^. _userEmail - infoSupervised = \(MsgRenderer mr) -> [shamlet| -

#{mr MsgMailSupervisedNote} + infoSupervised :: Hamlet.HtmlUrlI18n UniWorXSendMessage (Route UniWorX) = [ihamlet| +

_{MsgMailSupervisedNote}

- #{mr MsgMailSupervisedBody} + _{MsgMailSupervisedBody}