From de96b4bcab7613abab633507c2de3710e75c9c11 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Wed, 30 Mar 2022 17:25:12 +0200 Subject: [PATCH] chore(term): change to 4 digit format for disambiguation --- messages/uniworx/categories/term/de-de-formal.msg | 11 +++++------ messages/uniworx/categories/term/en-eu.msg | 11 +++++------ src/Handler/Term.hs | 8 ++++---- src/Model/Types/DateTime.hs | 6 ++++-- test/Model/TypesSpec.hs | 5 ++--- 5 files changed, 20 insertions(+), 21 deletions(-) diff --git a/messages/uniworx/categories/term/de-de-formal.msg b/messages/uniworx/categories/term/de-de-formal.msg index d88a9600f..f235804ea 100644 --- a/messages/uniworx/categories/term/de-de-formal.msg +++ b/messages/uniworx/categories/term/de-de-formal.msg @@ -5,24 +5,23 @@ TermStartMustBeBeforeLectureStart: Semester muss vor der Vorlesungszeit beginnen TermEndMustBeAfterLectureEnd: Vorlesungszeit muss vor dem Semester enden. TermShort: Kürzel TermCourseCount: Kurse -TermStart: Semesteranfang -TermEnd: Semesterende -LectureStart: Beginn Vorlesungen +TermStart: Anfang Kursperiode +TermEnd: Ende Kursperiode +LectureStart: Beginn Kurse TermEdited tid@TermId: Semester #{tid} erfolgreich editiert. TermNewTitle: Semester editieren/anlegen. InvalidInput: Eingaben bitte korrigieren. Term !ident-ok: Semester TermPlaceholder: JJJJ-MM-TT (Erster Tag einer Schulung) TermStartDay: Erster Tag -TermStartDayTooltip: Üblicherweise immer 1. April oder 1. Oktober TermEndDay: Letzter Tag -TermEndDayTooltip: Üblicherweise immer 30. September oder 31. März TermHolidays: Feiertage TermHolidayPlaceholder: Feiertag TermHolidayMissing: Feiertag wird benötigt TermLectureStart: Beginn Vorlesungen TermLectureEnd: Ende Vorlesungen -TermLectureEndTooltip: Meistens dauer das Sommersemester 14 Wochen und das Wintersemester 15 Wochen. +TermLectureStartTooltip: Muss am oder nach dem Beginn liegen +TermLectureEndTooltip: Muss am oder vor dem Ende liegen TermActive: Aktiv NumCourses num@Int64: #{num} #{pluralDE num "Kurs" "Kurse"} TermsHeading: Semesterübersicht diff --git a/messages/uniworx/categories/term/en-eu.msg b/messages/uniworx/categories/term/en-eu.msg index 8f2218f58..d27a2ecf1 100644 --- a/messages/uniworx/categories/term/en-eu.msg +++ b/messages/uniworx/categories/term/en-eu.msg @@ -5,24 +5,23 @@ TermStartMustBeBeforeLectureStart: Semester start must be before lecture start. TermEndMustBeAfterLectureEnd: Lecture end must be before semester end. TermShort: Shorthand TermCourseCount: Courses -TermStart: Semester start -TermEnd: Semester end -LectureStart: Lectures start +TermStart: Start of teaching period +TermEnd: End of teaching perios +LectureStart: Courses start TermEdited tid: Successfully edited semester #{tid} TermNewTitle: Edit/create semester InvalidInput: Invalid input Term: Semester TermPlaceholder: YYYY-MM-DD (First day of courses) TermStartDay: Starting day -TermStartDayTooltip: Usually 1st of April or 1st of October TermEndDay: Last day -TermEndDayTooltip: Usually 30th of September or 31st of March TermHolidays: Legal holidays TermHolidayPlaceholder: Legal holiday TermHolidayMissing: Holiday is required TermLectureStart: Lectures start TermLectureEnd: Lectures end -TermLectureEndTooltip: Summer semesters are usually 14 weeks; winter semesters 15 +TermLectureStartTooltip: Must be on or after starting day +TermLectureEndTooltip: Must be before or on ending day TermActive: Active NumCourses num: #{num} #{pluralEN num "course" "courses"} TermsHeading: Semesters diff --git a/src/Handler/Term.hs b/src/Handler/Term.hs index 03b52a21f..c5e655a8a 100644 --- a/src/Handler/Term.hs +++ b/src/Handler/Term.hs @@ -354,11 +354,11 @@ newTermForm mtid template = validateForm validateTerm $ \html -> do fRequired = False flip (renderAForm FormStandard) html $ TermForm <$> tidForm - <*> areq dayField (fslI MsgTermStartDay & setTooltip MsgTermStartDayTooltip) (tftStart template) - <*> areq dayField (fslI MsgTermEndDay & setTooltip MsgTermEndDayTooltip) (tftEnd template) + <*> areq dayField (fslI MsgTermStartDay) (tftStart template) + <*> areq dayField (fslI MsgTermEndDay ) (tftEnd template) <*> (ungroupHolidays <$> holidayForm (groupHolidays <$> tftHolidays template)) - <*> areq dayField (fslI MsgTermLectureStart) (tftLectureStart template) - <*> areq dayField (fslI MsgTermLectureEnd & setTooltip MsgTermLectureEndTooltip) (tftLectureEnd template) + <*> areq dayField (fslI MsgTermLectureStart & setTooltip MsgTermLectureStartTooltip) (tftLectureStart template) + <*> areq dayField (fslI MsgTermLectureEnd & setTooltip MsgTermLectureEndTooltip) (tftLectureEnd template) <*> activeForm (tftActive template) diff --git a/src/Model/Types/DateTime.hs b/src/Model/Types/DateTime.hs index 1d54bb162..065a38f08 100644 --- a/src/Model/Types/DateTime.hs +++ b/src/Model/Types/DateTime.hs @@ -71,12 +71,14 @@ shortened = iso shorten expand -- Handler.Utils.Widget.tidFromText -- MsgTermPlaceHolder termToText :: TermIdentifier -> Text -termToText TermIdentifier{..} = Text.pack . show $ year ^. shortened +termToText TermIdentifier{..} = Text.pack . show $ year -- ^. shortened termFromText :: Text -> Either Text TermIdentifier termFromText t - | Just (review shortened -> year) <- readMaybe $ Text.unpack t + | Just year <- readMaybe $ Text.unpack t = Right TermIdentifier {..} + -- | Just (review shortened -> year) <- readMaybe $ Text.unpack t + -- = Right TermIdentifier {..} | otherwise = Left $ "Invalid TermIdentifier: “" <> t <> "”; expected is just a year number." diff --git a/test/Model/TypesSpec.hs b/test/Model/TypesSpec.hs index 74d13b545..c1a2e509f 100644 --- a/test/Model/TypesSpec.hs +++ b/test/Model/TypesSpec.hs @@ -46,7 +46,6 @@ import qualified Data.Text.Lazy as LT import Text.Blaze.Html.Renderer.Text (renderHtml) -import Handler.Utils.DateTime (getYear) {- instance Arbitrary Day where @@ -65,7 +64,7 @@ instance CoArbitrary Day where instance Arbitrary TermIdentifier where arbitrary = TermIdentifier <$> arbitrary - shrink = fmap TermIdentifier . shrink . getTermDay + shrink = fmap TermIdentifier . shrink . year instance CoArbitrary TermIdentifier instance Function TermIdentifier @@ -471,7 +470,7 @@ spec = do --it "has compatible encoding/decoding to/from PersistValue" . property $ -- \term -> fromPersistValue (toPersistValue term) == term it "has human readable year encoding to Rational" . property $ - \term -> truncate (termToRational term) == getYear (getTermDay term) + \term -> truncate (termToRational term) == year term describe "Pseudonym" $ do it "has sufficient vocabulary" $ (length pseudonymWordlist ^ 2) `shouldSatisfy` (> (fromIntegral (maxBound :: Pseudonym) - fromIntegral (minBound :: Pseudonym)))