chore(letter): implement course qualification letter (done)
This commit is contained in:
parent
a827f46f0f
commit
5c11664830
@ -16,6 +16,7 @@ module Utils.Print
|
|||||||
, toMeta, mbMeta -- single values
|
, toMeta, mbMeta -- single values
|
||||||
, mkMeta, appMeta, applyMetas -- multiple values
|
, mkMeta, appMeta, applyMetas -- multiple values
|
||||||
, LetterRenewQualificationF(..)
|
, LetterRenewQualificationF(..)
|
||||||
|
, LetterCourseCertificate(), makeCourseCertificates
|
||||||
) where
|
) where
|
||||||
|
|
||||||
-- import Import.NoModel
|
-- import Import.NoModel
|
||||||
@ -218,7 +219,7 @@ printLetter'' _ = do
|
|||||||
}
|
}
|
||||||
-}
|
-}
|
||||||
|
|
||||||
sendEmailOrLetter :: (MDLetter l) => UserId -> l -> Handler Bool
|
sendEmailOrLetter :: (MDLetter l, MDMail l) => UserId -> l -> Handler Bool
|
||||||
sendEmailOrLetter recipient letter = do
|
sendEmailOrLetter recipient letter = do
|
||||||
(underling, receivers, undercopy) <- updateReceivers recipient -- TODO: check to avoid this almost circular dependency
|
(underling, receivers, undercopy) <- updateReceivers recipient -- TODO: check to avoid this almost circular dependency
|
||||||
now <- liftIO getCurrentTime
|
now <- liftIO getCurrentTime
|
||||||
|
|||||||
@ -36,6 +36,8 @@ import Handler.Utils.DateTime
|
|||||||
-- import Model.Types.Markup -- TODO-QSV: should this module be moved accordingly?
|
-- import Model.Types.Markup -- TODO-QSV: should this module be moved accordingly?
|
||||||
|
|
||||||
|
|
||||||
|
-- instance P.ToMetaValue (CI Text) where
|
||||||
|
-- toMetaValue = P.MetaString . CI.original
|
||||||
|
|
||||||
----------------------
|
----------------------
|
||||||
-- Pandoc Functions --
|
-- Pandoc Functions --
|
||||||
@ -218,8 +220,6 @@ data EncryptPDFfor = NoPassword | PasswordSupervisor | PasswordUnderling
|
|||||||
deriving (Eq, Show)
|
deriving (Eq, Show)
|
||||||
|
|
||||||
class MDLetter l where
|
class MDLetter l where
|
||||||
getMailSubject :: l -> SomeMessage UniWorX -- only used if letter is sent by email as pdf attachment
|
|
||||||
getMailBody :: l -> DateTimeFormatter -> HtmlUrlI18n (SomeMessage UniWorX) (Route UniWorX) -- only used if letter is sent by email as pdf attachment
|
|
||||||
letterMeta :: l -> DateTimeFormatter -> Lang -> Entity User -> P.Meta
|
letterMeta :: l -> DateTimeFormatter -> Lang -> Entity User -> P.Meta
|
||||||
getPJId :: l -> PrintJobIdentification
|
getPJId :: l -> PrintJobIdentification
|
||||||
getLetterEnvelope :: l -> Char
|
getLetterEnvelope :: l -> Char
|
||||||
@ -239,3 +239,14 @@ addApcIdent = P.Meta . toMeta "apc-ident"
|
|||||||
getApcIdent :: P.Meta -> Maybe Text
|
getApcIdent :: P.Meta -> Maybe Text
|
||||||
getApcIdent (P.lookupMeta "apc-ident" -> Just (P.MetaString t)) = Just t
|
getApcIdent (P.lookupMeta "apc-ident" -> Just (P.MetaString t)) = Just t
|
||||||
getApcIdent _ = Nothing
|
getApcIdent _ = Nothing
|
||||||
|
|
||||||
|
|
||||||
|
----------------
|
||||||
|
-- Mail Class --
|
||||||
|
----------------
|
||||||
|
|
||||||
|
-- this is for letters that may alternatively be sent as attachments to emails
|
||||||
|
|
||||||
|
class MDMail l where
|
||||||
|
getMailSubject :: l -> SomeMessage UniWorX -- only used if letter is sent by email as pdf attachment
|
||||||
|
getMailBody :: l -> DateTimeFormatter -> HtmlUrlI18n (SomeMessage UniWorX) (Route UniWorX) -- only used if letter is sent by email as pdf attachment
|
||||||
|
|||||||
@ -46,15 +46,17 @@ letterRenewalQualificationFData LetterRenewQualificationF{lmsLogin} = LetterRene
|
|||||||
lmsUrlLogin = lmsUrl <> "/?login=" <> lmsIdent
|
lmsUrlLogin = lmsUrl <> "/?login=" <> lmsIdent
|
||||||
lmsIdent = getLmsIdent lmsLogin
|
lmsIdent = getLmsIdent lmsLogin
|
||||||
|
|
||||||
|
instance MDMail LetterRenewQualificationF where
|
||||||
|
getMailSubject l = SomeMessage $ MsgMailSubjectQualificationRenewal $ qualShort l
|
||||||
|
getMailBody l@LetterRenewQualificationF{..} DateTimeFormatter{ format } =
|
||||||
|
let LetterRenewQualificationFData{..} = letterRenewalQualificationFData l
|
||||||
|
in $(ihamletFile "templates/mail/body/qualificationRenewal.hamlet")
|
||||||
|
|
||||||
instance MDLetter LetterRenewQualificationF where
|
instance MDLetter LetterRenewQualificationF where
|
||||||
encrypPDFfor _ = PasswordUnderling
|
encrypPDFfor _ = PasswordUnderling
|
||||||
getLetterKind _ = PinLetter
|
getLetterKind _ = PinLetter
|
||||||
getLetterEnvelope l = maybe 'q' (Char.toLower . fst) $ Text.uncons (qualShort l)
|
getLetterEnvelope l = maybe 'q' (Char.toLower . fst) $ Text.uncons (qualShort l)
|
||||||
getTemplate _ = decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_renewal.md")
|
getTemplate _ = decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_renewal.md")
|
||||||
getMailSubject l = SomeMessage $ MsgMailSubjectQualificationRenewal $ qualShort l
|
|
||||||
getMailBody l@LetterRenewQualificationF{..} DateTimeFormatter{ format } =
|
|
||||||
let LetterRenewQualificationFData{..} = letterRenewalQualificationFData l
|
|
||||||
in $(ihamletFile "templates/mail/body/qualificationRenewal.hamlet")
|
|
||||||
|
|
||||||
letterMeta l@LetterRenewQualificationF{..} DateTimeFormatter{ format } _lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
letterMeta l@LetterRenewQualificationF{..} DateTimeFormatter{ format } _lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
||||||
let LetterRenewQualificationFData{..} = letterRenewalQualificationFData l
|
let LetterRenewQualificationFData{..} = letterRenewalQualificationFData l
|
||||||
|
|||||||
Reference in New Issue
Block a user