chore(letter): expiry stub WIP
This commit is contained in:
parent
c31b63fc47
commit
6ddf1b1646
81
src/Utils/Print/ExpireQualification.hs
Normal file
81
src/Utils/Print/ExpireQualification.hs
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
-- SPDX-FileCopyrightText: 2023 Steffen Jost <jost@tcs.ifi.lmu.de>
|
||||||
|
--
|
||||||
|
-- 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])
|
||||||
|
}
|
||||||
@ -55,7 +55,7 @@ instance MDMail LetterRenewQualificationF where
|
|||||||
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 = 'f' -- 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")
|
||||||
|
|
||||||
letterMeta l@LetterRenewQualificationF{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
letterMeta l@LetterRenewQualificationF{..} DateTimeFormatter{ format } lang Entity{entityKey=rcvrId, entityVal=User{userDisplayName}} =
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user