diff --git a/src/Utils/Print/ExpireQualification.hs b/src/Utils/Print/ExpireQualification.hs new file mode 100644 index 000000000..c7c22f484 --- /dev/null +++ b/src/Utils/Print/ExpireQualification.hs @@ -0,0 +1,81 @@ +-- SPDX-FileCopyrightText: 2023 Steffen Jost +-- +-- SPDX-License-Identifier: AGPL-3.0-or-later + +{-# OPTIONS_GHC -fno-warn-unused-top-binds #-} + +module Utils.Print.ExpireQualification where + +import Import +import Text.Hamlet + +import Data.Char as Char +import qualified Data.Text as Text +import qualified Data.CaseInsensitive as CI + +import Data.FileEmbed (embedFile) + +import Utils.Print.Letters +import Handler.Utils.Widgets (nameHtml) -- , nameHtml') + + +data LetterExpireQualificationF = LetterExpireQualificationF + { leqfHolderID :: UserId + , leqfHolderDN :: UserDisplayName + , leqfHolderSN :: UserSurname + , leqfExpiry :: Day + , leqfId :: QualificationId + , leqfName :: Text + , leqfShort :: Text + , leqfSchool :: SchoolId + } + deriving (Eq, Show) + +-- TODO: +-- instance MDMail LetterExpireQualificationF 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 LetterExpireQualificationF where + encrypPDFfor _ = NoPassword + getLetterKind _ = Din5008 + getLetterEnvelope l = 'e' + getTemplate _ = decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_renewal.md") + + letterMeta l@LetterRenewQualificationF{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} = + let LetterRenewQualificationFData{..} = letterRenewalQualificationFData l + isSupervised = rcvrId /= qualHolderID + in mkMeta $ + guardMonoid isSupervised + [ toMeta "supervisor" userDisplayName + , toMeta "de-opening" ("Sehr geehrte Damen und Herren,"::Text) + , toMeta "en-opening" ("Dear Sir or Madam,"::Text) + ] <> + [ toMeta "lang" lang + , toMeta "login" lmsIdent + , toMeta "pin" lmsPin + , toMeta "examinee" qualHolderDN + , toMeta "expiry" (format SelFormatDate qualExpiry) + , mbMeta "validduration" (show <$> qualDuration) + , toMeta "url-text" lmsUrl + , toMeta "url" lmsUrlLogin + ] + + getPJId LetterRenewQualificationF{..} = + PrintJobIdentification + { pjiName = "Renewal" + , pjiApcAcknowledge = "lms-" <> getLmsIdent lmsLogin + , pjiRecipient = Nothing -- to be filled later + , pjiSender = Nothing + , pjiCourse = Nothing + , pjiQualification = Just qualId + , pjiLmsUser = Just lmsLogin + , pjiFileName = "renew_" <> CI.original (unSchoolKey qualSchool) <> "-" <> qualShort <> "_" <> qualHolderSN + -- let nameRecipient = abbrvName <$> recipient + -- nameSender = abbrvName <$> sender + -- nameCourse = CI.original . courseShorthand <$> course + -- nameQuali = CI.original . qualificationShorthand <$> quali + -- in .. = T.replace " " "-" (T.intercalate "_" . catMaybes $ [Just printJobName, nameQuali, nameCourse, nameSender, nameRecipient]) + } \ No newline at end of file diff --git a/src/Utils/Print/RenewQualification.hs b/src/Utils/Print/RenewQualification.hs index fd953c40a..939f6c97b 100644 --- a/src/Utils/Print/RenewQualification.hs +++ b/src/Utils/Print/RenewQualification.hs @@ -55,7 +55,7 @@ instance MDMail LetterRenewQualificationF where instance MDLetter LetterRenewQualificationF where encrypPDFfor _ = PasswordUnderling getLetterKind _ = PinLetter - getLetterEnvelope l = maybe 'q' (Char.toLower . fst) $ Text.uncons (qualShort l) + getLetterEnvelope l = 'f' -- maybe 'q' (Char.toLower . fst) $ Text.uncons (qualShort l) getTemplate _ = decodeUtf8 $(Data.FileEmbed.embedFile "templates/letter/fraport_renewal.md") letterMeta l@LetterRenewQualificationF{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =