chore(mail): fix various typos and formatting problems

This commit is contained in:
Steffen Jost 2022-12-21 16:03:53 +01:00
parent fb399b8ef0
commit 38e47a2e99
4 changed files with 36 additions and 30 deletions

View File

@ -268,8 +268,8 @@ user-defaults:
max-favourites: 0 max-favourites: 0
max-favourite-terms: 2 max-favourite-terms: 2
theme: Default theme: Default
date-time-format: "%a %d %b %Y %R" date-time-format: "%d %b %y %R"
date-format: "%a %d %b %Y" date-format: "%d %b %Y"
time-format: "%R" time-format: "%R"
download-files: false download-files: false
warning-days: 1209600 warning-days: 1209600

View File

@ -26,6 +26,7 @@ import qualified Text.Pandoc as P
import qualified Text.Hamlet as Hamlet import qualified Text.Hamlet as Hamlet
import qualified Text.Shakespeare as Shakespeare (RenderUrl) import qualified Text.Shakespeare as Shakespeare (RenderUrl)
import qualified Text.Blaze.Html5 as H
addRecipientsDB :: ( MonadMail m addRecipientsDB :: ( MonadMail m
, HandlerSite m ~ UniWorX , HandlerSite m ~ UniWorX
@ -60,8 +61,7 @@ userMailT uid mAct = do
(underling, receivers, undercopy) <- liftHandler . runDB $ getReceivers uid (underling, receivers, undercopy) <- liftHandler . runDB $ getReceivers uid
let undername = underling ^. _userDisplayName -- nameHtml' underling let undername = underling ^. _userDisplayName -- nameHtml' underling
undermail = CI.original $ underling ^. _userEmail undermail = CI.original $ underling ^. _userEmail
infoSupervised :: Hamlet.HtmlUrlI18n UniWorXSendMessage (Route UniWorX) = [ihamlet| infoSupervised :: Hamlet.HtmlUrlI18n UniWorXSendMessage (Route UniWorX) = [ihamlet|
<meta charset="utf-8">
<h2>_{MsgMailSupervisedNote} <h2>_{MsgMailSupervisedNote}
<p> <p>
_{MsgMailSupervisedBody} _{MsgMailSupervisedBody}
@ -88,14 +88,10 @@ userMailT uid mAct = do
, mcCsvOptions = userCsvOptions , mcCsvOptions = userCsvOptions
} }
supername = supervisor ^. _userDisplayName -- nameHtml' supervisor supername = supervisor ^. _userDisplayName -- nameHtml' supervisor
infoSupervisor :: Hamlet.HtmlUrlI18n UniWorXSendMessage (Route UniWorX) = [ihamlet| infoSupervisor :: Hamlet.HtmlUrlI18n UniWorXSendMessage (Route UniWorX) = [ihamlet|
<meta charset="utf-8">
<h2>_{MsgMailSupervisorNote} <h2>_{MsgMailSupervisorNote}
<p> <p>
_{MsgMailSupervisorBody undername supername} # _{MsgMailSupervisorBody undername supername} <a href=@{NewsR}>FRADrive</a>. #
<a href=@{NewsR}>
FRADrive
. #
$if undercopy $if undercopy
_{MsgMailSupervisorCopy undermail} _{MsgMailSupervisorCopy undermail}
$else $else
@ -190,7 +186,7 @@ addHtmlMarkdownAlternatives html' = do
where where
writerOptions = markdownWriterOptions writerOptions = markdownWriterOptions
{ P.writerReferenceLinks = True { P.writerReferenceLinks = True
, P.writerPreferAscii = True , P.writerPreferAscii = False
} }
-- | Like @addHtmlMarkdownAlternatives, but adds subseqeunt parts with "content-disposition: inline" and the provided filename, if inline display is not permitted (receiver's choice) -- | Like @addHtmlMarkdownAlternatives, but adds subseqeunt parts with "content-disposition: inline" and the provided filename, if inline display is not permitted (receiver's choice)
@ -200,13 +196,14 @@ addHtmlMarkdownAlternatives' :: ( MonadMail m
) => Text -> a -> m () ) => Text -> a -> m ()
addHtmlMarkdownAlternatives' fn html' = do addHtmlMarkdownAlternatives' fn html' = do
html <- toMailHtml html' html <- toMailHtml html'
markdown <- runMaybeT $ renderMarkdownWith htmlReaderOptions writerOptions html markdown <- runMaybeT $ renderMarkdownWith htmlReaderOptions writerOptions html
addAlternatives $ do addAlternatives $ do
providePreferredAlternative $ NamedMailPart { disposition = InlineDisposition $ fn <> ".html", namedPart = html } let html_meta = H.head $ H.preEscapedText "<meta charset=\"utf-8\">" -- this is probably not the correct way to do this
providePreferredAlternative $ NamedMailPart { disposition = InlineDisposition $ fn <> ".html", namedPart = html_meta <> html }
whenIsJust markdown $ provideAlternative . NamedMailPart (InlineDisposition (fn <> ".txt")) whenIsJust markdown $ provideAlternative . NamedMailPart (InlineDisposition (fn <> ".txt"))
where where
writerOptions = markdownWriterOptions writerOptions = markdownWriterOptions
{ P.writerReferenceLinks = True { P.writerReferenceLinks = True
, P.writerPreferAscii = True , P.writerPreferAscii = False
} }

View File

@ -427,12 +427,21 @@ sendEmailOrLetter recipient letter = do
let (preferPost, postal) = getPostalPreferenceAndAddress rcvrUsr let (preferPost, postal) = getPostalPreferenceAndAddress rcvrUsr
isSupervised = recipient /= svr isSupervised = recipient /= svr
lang = selectDeEn $ rcvrUsr & userLanguages -- select either German or English only, default de; see Utils.Lang lang = selectDeEn $ rcvrUsr & userLanguages -- select either German or English only, default de; see Utils.Lang
lMeta = letterMeta letter lang formatter <> mkMeta lMeta = letterMeta letter lang formatter <> mkMeta (
[ toMeta "lang" lang ( if isSupervised
, toMeta "date" $ format SelFormatDate now then
, toMeta "address" $ fromMaybe [rcvrUsr & userDisplayName] postal [ toMeta "supervisor" (rcvrUsr & userDisplayName)
, mbMeta "supervisor" $ toMaybe isSupervised (rcvrUsr & userDisplayName) , toMeta "de-opening" ("Sehr geehrte Damen und Herren,"::Text)
] , toMeta "en-opening" ("Dear supervisor,"::Text)
]
else []
) <>
[ toMeta "lang" lang
, toMeta "date" $ format SelFormatDate now
, toMeta "address" $ fromMaybe [rcvrUsr & userDisplayName] postal
]
)
pdfLetter tmpl lMeta >>= \case pdfLetter tmpl lMeta >>= \case
_ | preferPost, isNothing postal -> do -- neither email nor postal is known _ | preferPost, isNothing postal -> do -- neither email nor postal is known
encRecipient :: CryptoUUIDUser <- encrypt svr encRecipient :: CryptoUUIDUser <- encrypt svr

View File

@ -9,7 +9,7 @@ email: fahrerausbildung@fraport.de
place: Frankfurt am Main place: Frankfurt am Main
return-address: return-address:
- 60547 Frankfurt - 60547 Frankfurt
de-opening: Liebe Fahrer, de-opening: Liebe Fahrberechtigungsinhaber,
en-opening: Dear driver, en-opening: Dear driver,
de-closing: | de-closing: |
Mit freundlichen Grüßen, Mit freundlichen Grüßen,
@ -67,12 +67,12 @@ $endif$
verlängert werden. verlängert werden.
$if(supervisor)$ $if(supervisor)$
Ansprechpartner werden gebeten, die Login-Daten aus dem geschützen Sichtfenster weiter unten Ansprechpartner werden gebeten, die Login-Daten aus dem geschützen Sichtfenster weiter unten
vertraulich an den Prüfling weiterzuleiten. vertraulich an den Fahrberechtigungsinhaber weiterzuleiten.
$else$ $else$
Dazu bitte die Login-Daten aus dem geschützen Sichtfenster weiter unten verwenden. Dazu bitte die Login-Daten aus dem geschützen Sichtfenster weiter unten verwenden.
$endif$ $endif$
Prüfling Fahrberechtigungsinhaber
: $examinee$ : $examinee$
@ -85,8 +85,9 @@ URL
: [$url-text$]($url$) : [$url-text$]($url$)
Sobald die Frist abgelaufen ist, muss zur Wiedererlangung der Fahrberechtigung "F" Sollte bis zum Ablaufdatum das E-Learning nicht erfolgreich abgeschlossen sein, muss
erneut der komplette Grundkurs bei der Fahrerausbildung absolviert werden. zur Wiedererlangung der Fahrberechtigung "F" erneut ein Grundkurs
bei der Fahrerausbildung absolviert werden.
Bei Fragen können Sie sich gerne an das Team der Fahrerausbildung wenden. Bei Fragen können Sie sich gerne an das Team der Fahrerausbildung wenden.
@ -94,12 +95,11 @@ Bei Fragen können Sie sich gerne an das Team der Fahrerausbildung wenden.
$else$ $else$
<!-- englische Version des Briefes --> <!-- englische Version des Briefes -->
$if(supervisor)$ $if(supervisor)$
the apron diving license of $examinee$ the apron diving license of $examinee$
$else$ $else$
your apron diving license your apron diving license
$endif$ $endif$
is about to expire soon. is about to expire soon.
The validity may be extended The validity may be extended
$if(validduration)$ $if(validduration)$
@ -124,7 +124,7 @@ Expiry
URL URL
:[$url-text$]($url$) : [$url-text$]($url$)
Should the apron driving license expire before completing this Should the apron driving license expire before completing this