From 0751f23c8e01e4011525b5527b3fa6fdaa1f4476 Mon Sep 17 00:00:00 2001 From: Steffen Jost Date: Fri, 22 Mar 2019 19:13:42 +0100 Subject: [PATCH] i18n cleanups course user page --- messages/uniworx/de.msg | 8 +++++ src/Database/Esqueleto/Utils.hs | 8 ++--- src/Database/Esqueleto/Utils/TH.hs | 2 +- src/Handler/Course.hs | 54 ++++-------------------------- src/Handler/Utils.hs | 4 +++ src/Utils/TH.hs | 2 +- templates/course-user.hamlet | 39 +++++++++++++++++++++ templates/profileData.hamlet | 16 ++++----- 8 files changed, 72 insertions(+), 61 deletions(-) create mode 100644 templates/course-user.hamlet diff --git a/messages/uniworx/de.msg b/messages/uniworx/de.msg index 2a429a9ae..ea63670c6 100644 --- a/messages/uniworx/de.msg +++ b/messages/uniworx/de.msg @@ -72,6 +72,7 @@ CourseNewHeading: Neuen Kurs anlegen CourseEditHeading tid@TermId ssh@SchoolId csh@CourseShorthand: Kurs #{display tid}-#{display ssh}-#{csh} editieren CourseEditTitle: Kurs editieren/anlegen CourseMembers: Teilnehmer +CourseMemberOf: Teilnehmer CourseMembersCount n@Int: #{display n} CourseMembersCountLimited n@Int max@Int: #{display n}/#{display max} CourseMembersCountOf n@Int mbNum@IntMaybe: #{display n} Anmeldungen #{maybeDisplay " von " mbNum " möglichen"} @@ -257,6 +258,7 @@ CloseAlert: Schliessen Name: Name MatrikelNr: Matrikelnummer +NoMatrikelKnown: Keine Matrikelnummer eingetragen Theme: Oberflächen Design Favoriten: Anzahl gespeicherter Favoriten Plugin: Plugin @@ -414,12 +416,18 @@ SheetCorrectorSubmissionsTip: Abgabe erfolgt über ein Uni2work-externes Verfahr SubmissionNoUploadExpected: Es ist keine Abgabe von Dateien vorgesehen. AdminFeaturesHeading: Studiengänge +StudyTerms: Studiengänge +StudyTerm: Studiengang +NoStudyTermsKnown: Nicht eingeschrieben StudyFeatureInference: Studiengangschlüssel-Inferenz StudyFeatureAge: Fachsemester StudyFeatureDegree: Abschluss FieldPrimary: Hauptfach FieldSecondary: Nebenfach NoPrimaryStudyField: (kein Hauptfach registriert) +StudyFeatureType: +StudyFeatureValid: Aktiv +StudyFeatureUpdate: Abgeglichen DegreeKey: Schlüssel Abschluss DegreeName: Abschluss diff --git a/src/Database/Esqueleto/Utils.hs b/src/Database/Esqueleto/Utils.hs index ae1628b45..f3aec73aa 100644 --- a/src/Database/Esqueleto/Utils.hs +++ b/src/Database/Esqueleto/Utils.hs @@ -58,12 +58,12 @@ all test = F.foldr (\needle acc -> acc E.&&. test needle) true $(sqlInTuples [2..16]) -- | Example for usage of unValueN -_example_unValueN :: (E.Value a, E.Value b, E.Value c) -> (a,b,c) -_example_unValueN = $(unValueN 3) +_exampleUnValueN :: (E.Value a, E.Value b, E.Value c) -> (a,b,c) +_exampleUnValueN = $(unValueN 3) -- | Example for usage of unValueNIs -_example_unValueNIs :: (E.Value a, b, E.Value c) -> (a,b,c) -_example_unValueNIs = $(unValueNIs 3 [1,3]) +_exampleUnValueNIs :: (E.Value a, b, E.Value c) -> (a,b,c) +_exampleUnValueNIs = $(unValueNIs 3 [1,3]) -- | Example for usage of sqlIJproj _queryFeaturesDegree :: (a `E.InnerJoin` b `E.InnerJoin` c) -> b diff --git a/src/Database/Esqueleto/Utils/TH.hs b/src/Database/Esqueleto/Utils/TH.hs index cc1f5d7b9..218c96d70 100644 --- a/src/Database/Esqueleto/Utils/TH.hs +++ b/src/Database/Esqueleto/Utils/TH.hs @@ -65,7 +65,7 @@ unValueNIs :: Int -> [Int] -> ExpQ unValueNIs arity uvIdx = do vs <- replicateM arity $ newName "v" let pat = tupP $ map varP vs - let rhs = tupE $ map uvEi $ zip vs [1..] + let rhs = tupE $ zipWith (curry uvEi) vs [1 ..] lam1E pat rhs where uvEi (v,i) | i `elem` uvIdx = [e|E.unValue $(varE v)|] diff --git a/src/Handler/Course.hs b/src/Handler/Course.hs index f94ebca79..d5f42f523 100644 --- a/src/Handler/Course.hs +++ b/src/Handler/Course.hs @@ -868,7 +868,7 @@ postCUserR tid ssh csh uCId = do |] -- _{MsgLastEdit} ^{formatTimeW SelFormatDateTime etime} ^{nameWidget ename esurname} ((noteRes, noteView), noteEnctype) <- runFormPost . identifyForm FIDcUserNote . renderAForm FormStandard $ - (aopt (annotateField editByWgt htmlField') (fslpI MsgCourseUserNote "Html" & setTooltip MsgCourseUserNoteTooltip) $ Just noteText) + aopt (annotateField editByWgt htmlField') (fslpI MsgCourseUserNote "HTML" & setTooltip MsgCourseUserNoteTooltip) (Just noteText) <* submitButton formResult noteRes $ \mbNote -> (do now <- liftIO getCurrentTime @@ -888,52 +888,12 @@ postCUserR tid ssh csh uCId = do addMessageI Success MsgCourseUserNoteSaved redirect currentRoute -- reload page after post ) - - - -- USE src/utils/Form.formResult - defaultLayout -- TODO - [whamlet| -

^{nameWidget userDisplayName userSurname} -
-
-
-
_{MsgEMail} -
#{mailtoHtml userEmail} -
_{MsgMatrikelNr} -
- $maybe matnr <- userMatrikelnummer - #{matnr} - $nothing - Keine eingetragene Matrikelnummer -
Studiengänge -
- $if null studies - Nicht eingeschrieben - $else -
- - -
Studiengang - Abschluss - Studienart - Semester - Aktiv - Update - $forall ((Entity _ StudyFeatures{..}), (Entity _ degree), (Entity _ field)) <- studies - $with _ <- notUsedT studyFeaturesUser - - _{field}#{notUsedT studyFeaturesField} - _{degree}#{notUsedT studyFeaturesDegree} - _{studyFeaturesType} - #{display studyFeaturesSemester} - #{hasTickmark studyFeaturesValid} - ^{formatTimeW SelFormatDate studyFeaturesUpdated} - -
- -
- ^{noteView} - |] + -- generate output + let headingLong = [whamlet|^{nameWidget userDisplayName userSurname} - _{MsgCourseMemberOf} #{csh} #{display tid}|] + headingShort = prependCourseTitle tid ssh csh $ SomeMessage userDisplayName + siteLayout headingLong $ do + setTitleI headingShort + $(widgetFile "course-user") getCHiWisR :: TermId -> SchoolId -> CourseShorthand -> Handler Html diff --git a/src/Handler/Utils.hs b/src/Handler/Utils.hs index 4b2a3b1fb..e232261fb 100644 --- a/src/Handler/Utils.hs +++ b/src/Handler/Utils.hs @@ -108,12 +108,16 @@ prependCourseTitle tid ssh csh msg = UniWorXMessages , SomeMessage $ toPathPiece ssh , SomeMessage dashText , SomeMessage csh + , SomeMessage colonText , SomeMessage msg ] where dashText :: Text dashText = "-" + colonText :: Text + colonText = ":" + warnTermDays :: TermId -> [Maybe UTCTime] -> DB () warnTermDays tid times = do Term{..} <- get404 tid diff --git a/src/Utils/TH.hs b/src/Utils/TH.hs index c365611f9..5e7b1f36d 100644 --- a/src/Utils/TH.hs +++ b/src/Utils/TH.hs @@ -88,7 +88,7 @@ afterN n = do f <- newName "f" g <- newName "g" --let rhs = [|$(curryN n) (g . ($(uncurryN n) f))|] - lamE [(varP g),(varP f)] [|$(curryN n) ($(varE g) . ($(uncurryN n) $(varE f)))|] + lamE [varP g, varP f] [|$(curryN n) $(varE g) . $(uncurryN n) $(varE f)|] -- Special Show-Instances for Themes diff --git a/templates/course-user.hamlet b/templates/course-user.hamlet new file mode 100644 index 000000000..4e5d793f8 --- /dev/null +++ b/templates/course-user.hamlet @@ -0,0 +1,39 @@ +
+
+
+
_{MsgEMail} +
#{mailtoHtml userEmail} +
_{MsgMatrikelNr} +
+ $maybe matnr <- userMatrikelnummer + #{matnr} + $nothing + _{MsgNoMatrikelKnown} +
_{MsgStudyTerms} +
+ $if null studies + _{MsgNoStudyTermsKnown} + $else +
+ + +
_{MsgStudyTerm} + _{MsgStudyFeatureDegree} + _{MsgStudyFeatureType} + _{MsgStudyFeatureAge} + _{MsgStudyFeatureValid} + _{MsgStudyFeatureUpdate} + $forall ((Entity _ StudyFeatures{..}), (Entity _ degree), (Entity _ field)) <- studies + $with _ <- notUsedT studyFeaturesUser + + _{field}#{notUsedT studyFeaturesField} + _{degree}#{notUsedT studyFeaturesDegree} + _{studyFeaturesType} + #{display studyFeaturesSemester} + #{hasTickmark studyFeaturesValid} + ^{formatTimeW SelFormatDate studyFeaturesUpdated} + +
+ + + ^{noteView} diff --git a/templates/profileData.hamlet b/templates/profileData.hamlet index 12ff74157..1946b98b6 100644 --- a/templates/profileData.hamlet +++ b/templates/profileData.hamlet @@ -17,7 +17,7 @@ $nothing _{MsgNever} $if not $ null admin_rights -
Administrator +
_{MsgAdminFor}