diff --git a/src/Foundation/I18n.hs b/src/Foundation/I18n.hs index fd2bb9479..cea2631da 100644 --- a/src/Foundation/I18n.hs +++ b/src/Foundation/I18n.hs @@ -215,6 +215,32 @@ newtype ShortTermIdentifier = ShortTermIdentifier TermIdentifier deriving stock (Eq, Ord, Read, Show) +-- ToMessage instances for converting raw numbers to Text (no internationalization) +-- FIXME: Use RenderMessage always + +instance ToMessage Int where + toMessage = tshow +instance ToMessage Int64 where + toMessage = tshow +instance ToMessage Integer where + toMessage = tshow +instance ToMessage Natural where + toMessage = tshow +instance ToMessage Word64 where + toMessage = tshow +instance HasResolution a => ToMessage (Fixed a) where + toMessage = toMessage . showFixed True + + + + + + +instance RenderMessage UniWorX Address where + renderMessage s l a@Address{addressName = Just aname} = aname <> cons ' ' (renderMessage s l a{addressName=Nothing}) + renderMessage _ _ Address{addressEmail = mail} = "<" <> mail <> ">" + + -- Messages creates type UniWorXMessage and RenderMessage UniWorX instance mkMessage ''UniWorX "messages/uniworx/misc" "de-de-formal" @@ -335,6 +361,11 @@ instance RenderMessage UniWorX MsgLanguage where MsgLanguageEndonym _ -> lang : filter (/= lang) ls MsgLanguage _ -> ls + + + + + appLanguagesOpts :: ( MonadHandler m , RenderMessage (HandlerSite m) MsgLanguage ) => m (OptionList Lang) @@ -500,22 +531,6 @@ instance RenderMessage UniWorX ExamCloseMode where mr :: RenderMessage UniWorX msg => msg -> Text mr = renderMessage foundation ls --- ToMessage instances for converting raw numbers to Text (no internationalization) --- FIXME: Use RenderMessage always - -instance ToMessage Int where - toMessage = tshow -instance ToMessage Int64 where - toMessage = tshow -instance ToMessage Integer where - toMessage = tshow -instance ToMessage Natural where - toMessage = tshow -instance ToMessage Word64 where - toMessage = tshow -instance HasResolution a => ToMessage (Fixed a) where - toMessage = toMessage . showFixed True - -- Do not use toMessage on Rationals and round them automatically. Instead, use rationalToFixed3 (declared in src/Utils.hs) to convert a Rational to Fixed E3! -- instance ToMessage Rational where -- toMessage = toMessage . fromRational' @@ -607,7 +622,3 @@ unRenderMessageLenient = unRenderMessage' cmp instance Default DateTimeFormatter where def = mkDateTimeFormatter (getTimeLocale' []) def appTZ - -instance RenderMessage UniWorX Address where - renderMessage s l a@Address{addressName = Just aname} = aname <> cons ' ' (renderMessage s l a{addressName=Nothing}) - renderMessage _ _ Address{addressEmail = mail} = "<" <> mail <> ">" diff --git a/src/Handler/Utils/DateTime.hs b/src/Handler/Utils/DateTime.hs index 2b05f208f..ac0eddc46 100644 --- a/src/Handler/Utils/DateTime.hs +++ b/src/Handler/Utils/DateTime.hs @@ -276,13 +276,14 @@ getYear date = y where (y,_,_) = toGregorian date -dayOfWeekDiff :: DayOfWeek -> DayOfWeek -> Int -dayOfWeekDiff a b = mod (fromEnum a - fromEnum b) 7 +-- removed as it is part of time now +--dayOfWeekDiff :: DayOfWeek -> DayOfWeek -> Int +--dayOfWeekDiff a b = mod (fromEnum a - fromEnum b) 7 --- | The first day-of-week on or after some day --- | from time-compat-1.9.5, not included -firstDayOfWeekOnAfter :: DayOfWeek -> Day -> Day -firstDayOfWeekOnAfter dw d = addDays (toInteger $ dayOfWeekDiff dw $ dayOfWeek d) d +---- | The first day-of-week on or after some day +---- | from time-compat-1.9.5, not included +--firstDayOfWeekOnAfter :: DayOfWeek -> Day -> Day +--firstDayOfWeekOnAfter dw d = addDays (toInteger $ dayOfWeekDiff dw $ dayOfWeek d) d daysOfWeekBetween :: (Day, Day) -> DayOfWeek -> Set Day daysOfWeekBetween (dstart, dend) wday = Set.fromAscList $ takeWhile (dend >=) $ iterate (addDays 7) $ firstDayOfWeekOnAfter wday dstart