diff --git a/config/settings.yml b/config/settings.yml index 0a6647c97..d369568f1 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -42,10 +42,9 @@ ldap: default-favourites: 12 default-theme: Default -default-date-time-format: - dateTimeFormat: "%a %d %b %Y %R" - dateFormat: "%d.%m.%Y" - timeFormat: "%R" +default-date-time-format: "%a %d %b %Y %R" +default-date-format: "%d.%m.%Y" +default-time-format: "%R" cryptoid-keyfile: "_env:CRYPTOID_KEYFILE:cryptoid_key.bf" diff --git a/models b/models index 49c6fc524..0fbb50c92 100644 --- a/models +++ b/models @@ -4,9 +4,11 @@ User json matrikelnummer Text Maybe email Text displayName Text - maxFavourites Int - theme Theme - dateTimeFormat DateTimeFormat + maxFavourites Int default=12 + theme Theme default='Default' + dateTimeFormat DateTimeFormat "default='%a %d %b %Y %R'" + dateFormat DateTimeFormat "default='%d.%m.%Y'" + timeFormat DateTimeFormat "default='%R'" UniqueAuthentication plugin ident UniqueEmail email deriving Show diff --git a/src/Foundation.hs b/src/Foundation.hs index cc692b35e..0a6a3b50d 100644 --- a/src/Foundation.hs +++ b/src/Foundation.hs @@ -1009,6 +1009,8 @@ instance YesodAuth UniWorX where userMaxFavourites = appDefaultMaxFavourites userTheme = appDefaultTheme userDateTimeFormat = appDefaultDateTimeFormat + userDateFormat = appDefaultDateFormat + userTimeFormat = appDefaultTimeFormat newUser = User{..} userUpdate = [ UserMatrikelnummer =. userMatrikelnummer , UserDisplayName =. userDisplayName diff --git a/src/Handler/Course.hs b/src/Handler/Course.hs index 17a3ee853..6b75a8f89 100644 --- a/src/Handler/Course.hs +++ b/src/Handler/Course.hs @@ -62,8 +62,8 @@ getTermCourseListR tid = do [ sortable (Just "shorthand") (textCell MsgCourse) $ anchorCell' (\(Entity _ Course{..}, _) -> CourseR courseTerm courseShorthand CShowR) (\(Entity _ Course{..}, _) -> toWidget courseShorthand) - , sortable (Just "register-from") (textCell MsgRegisterFrom) $ \(Entity _ Course{..}, _) -> cell $ traverse (formatTime dateTimeFormat) courseRegisterFrom >>= maybe mempty toWidget - , sortable (Just "register-to") (textCell MsgRegisterTo) $ \(Entity _ Course{..}, _) -> cell $ traverse (formatTime dateTimeFormat) courseRegisterTo >>= maybe mempty toWidget + , sortable (Just "register-from") (textCell MsgRegisterFrom) $ \(Entity _ Course{..}, _) -> cell $ traverse (formatTime SelFormatDateTime) courseRegisterFrom >>= maybe mempty toWidget + , sortable (Just "register-to") (textCell MsgRegisterTo) $ \(Entity _ Course{..}, _) -> cell $ traverse (formatTime SelFormatDateTime) courseRegisterTo >>= maybe mempty toWidget , sortable (Just "members") (textCell MsgCourseMembers) $ \(Entity _ Course{..}, E.Value num) -> textCell $ case courseCapacity of Nothing -> MsgCourseMembersCount num Just max -> MsgCourseMembersCountLimited num max @@ -110,8 +110,8 @@ getCShowR tid csh = do let course = entityVal courseEnt (regWidget, regEnctype) <- generateFormPost $ identifyForm "registerBtn" $ registerForm registered $ courseRegisterSecret course registrationOpen <- (==Authorized) <$> isAuthorized (CourseR tid csh CRegisterR) True - mRegFrom <- traverse (formatTime dateTimeFormat) $ courseRegisterFrom course - mRegTo <- traverse (formatTime dateTimeFormat) $ courseRegisterTo course + mRegFrom <- traverse (formatTime SelFormatDateTime) $ courseRegisterFrom course + mRegTo <- traverse (formatTime SelFormatDateTime) $ courseRegisterTo course defaultLayout $ do setTitle $ [shamlet| #{toPathPiece tid} - #{csh}|] $(widgetFile "course") diff --git a/src/Handler/Home.hs b/src/Handler/Home.hs index 89fc83136..3f3c2184f 100644 --- a/src/Handler/Home.hs +++ b/src/Handler/Home.hs @@ -77,7 +77,7 @@ homeAnonymous = do , sortable (Just "term") (textCell MsgTerm) $ \DBRow{ dbrOutput=(Entity {entityVal = course}) } -> textCell $ display $ courseTerm course , sortable (Just "deadline") (textCell MsgRegisterTo) $ \DBRow{ dbrOutput=(Entity {entityVal = course}) } -> - cell $ traverse (formatTime dateTimeFormat) (courseRegisterTo course) >>= maybe mempty toWidget + cell $ traverse (formatTime SelFormatDateTime) (courseRegisterTo course) >>= maybe mempty toWidget ] courseTable <- dbTable def $ DBTable { dbtSQLQuery = tableData @@ -154,7 +154,7 @@ homeUser uid = do , sortable (Just "sheet") (textCell MsgSheet) $ \DBRow{ dbrOutput=(E.Value tid, E.Value csh, E.Value shn, _, _) } -> cell [whamlet|#{display shn}|] , sortable (Just "deadline") (textCell MsgDeadline) $ \DBRow{ dbrOutput=(_, _, _, E.Value deadline, _) } -> - cell $ formatTime dateTimeFormat deadline >>= toWidget + cell $ formatTime SelFormatDateTime deadline >>= toWidget , sortable (Just "done") (textCell MsgDone) $ \(DBRow{ dbrOutput=(E.Value tid, E.Value csh, E.Value shn, _, E.Value mbsid) }) -> case mbsid of Nothing -> mempty diff --git a/src/Handler/Sheet.hs b/src/Handler/Sheet.hs index 2b093af0f..d85e9694a 100644 --- a/src/Handler/Sheet.hs +++ b/src/Handler/Sheet.hs @@ -160,8 +160,8 @@ getSheetListR tid csh = do let tid = courseTerm course let colBase = mconcat [ headed "Blatt" $ \(sid,sheet,_) -> simpleLink (toWgt $ sheetName sheet) $ CSheetR tid csh (sheetName sheet) SShowR - , headed "Abgabe ab" $ \(_,Sheet{..},_) -> formatTime dateTimeFormat sheetActiveFrom >>= toWidget - , headed "Abgabe bis" $ \(_,Sheet{..},_) -> formatTime dateTimeFormat sheetActiveTo >>= toWidget + , headed "Abgabe ab" $ \(_,Sheet{..},_) -> formatTime SelFormatDateTime sheetActiveFrom >>= toWidget + , headed "Abgabe bis" $ \(_,Sheet{..},_) -> formatTime SelFormatDateTime sheetActiveTo >>= toWidget , headed "Bewertung" $ toWgt . display . sheetType . snd3 ] let colAdmin = mconcat -- only show edit button for allowed course assistants @@ -222,7 +222,7 @@ getSShowR tid csh shn = do SheetExercise -> textCell $ display $ sheetActiveFrom sheet SheetHint -> textCell $ display $ sheetHintFrom sheet SheetSolution -> textCell $ display $ sheetSolutionFrom sheet - , sortable (Just "time") "Modifikation" $ \(_,E.Value modified,_) -> cell $ formatTime dateTimeFormat (modified :: UTCTime) >>= toWidget + , sortable (Just "time") "Modifikation" $ \(_,E.Value modified,_) -> cell $ formatTime SelFormatDateTime (modified :: UTCTime) >>= toWidget ] fileTable <- dbTable def $ DBTable { dbtSQLQuery = fileData @@ -244,8 +244,8 @@ getSShowR tid csh shn = do } defaultLayout $ do setTitle $ toHtml $ T.append "Übung " $ sheetName sheet - sheetFrom <- formatTime dateTimeFormat $ sheetActiveFrom sheet - sheetTo <- formatTime dateTimeFormat $ sheetActiveTo sheet + sheetFrom <- formatTime SelFormatDateTime $ sheetActiveFrom sheet + sheetTo <- formatTime SelFormatDateTime $ sheetActiveTo sheet $(widgetFile "sheetShow") getSFileR :: TermId -> Text -> Text -> SheetFileType -> FilePath -> Handler TypedContent diff --git a/src/Handler/Submission.hs b/src/Handler/Submission.hs index 4c6fe2d7f..130bfaa73 100644 --- a/src/Handler/Submission.hs +++ b/src/Handler/Submission.hs @@ -160,7 +160,7 @@ submissionHelper tid csh shn (SubmissionMode mcid) = do E.orderBy [E.desc $ submissionEdit E.^. SubmissionEditTime] E.limit numberOfSubmissionEditDates return $ (user E.^. UserDisplayName, submissionEdit E.^. SubmissionEditTime) - lastEdits <- forM lastEditValues $ \(E.Value name, E.Value time) -> (name, ) <$> formatTime dateTimeFormat time + lastEdits <- forM lastEditValues $ \(E.Value name, E.Value time) -> (name, ) <$> formatTime SelFormatDateTime time return (sheet,buddies,lastEdits) let unpackZips = True -- undefined -- TODO ((res,formWidget), formEnctype) <- runFormPost $ makeSubmissionForm msmid unpackZips sheetGrouping $ map E.unValue buddies diff --git a/src/Handler/Term.hs b/src/Handler/Term.hs index 240b9c9f6..28cb87731 100644 --- a/src/Handler/Term.hs +++ b/src/Handler/Term.hs @@ -46,20 +46,20 @@ getTermShowR = do anchorCell' (\(Entity tid _, _) -> TermCourseListR tid) (\(Entity tid _, _) -> [whamlet|#{display tid}|]) , sortable (Just "lecture-start") (i18nCell MsgLectureStart) $ \(Entity _ Term{..},_) -> - cell $ formatTime dateFormat termLectureStart >>= toWidget + cell $ formatTime SelFormatDate termLectureStart >>= toWidget , sortable (Just "lecture-end") "Ende Vorlesungen" $ \(Entity _ Term{..},_) -> - cell $ formatTime dateFormat termLectureEnd >>= toWidget + cell $ formatTime SelFormatDate termLectureEnd >>= toWidget , sortable Nothing "Aktiv" $ \(Entity _ Term{..},_) -> textCell $ (bool "" tickmark termActive :: Text) , sortable Nothing "Kurse" $ \(_, E.Value numCourses) -> cell [whamlet|_{MsgNumCourses numCourses}|] , sortable (Just "start") "Semesteranfang" $ \(Entity _ Term{..},_) -> - cell $ formatTime dateFormat termStart >>= toWidget + cell $ formatTime SelFormatDate termStart >>= toWidget , sortable (Just "end") "Semesterende" $ \(Entity _ Term{..},_) -> - cell $ formatTime dateFormat termEnd >>= toWidget + cell $ formatTime SelFormatDate termEnd >>= toWidget , sortable Nothing "Feiertage im Semester" $ \(Entity _ Term{..},_) -> cell $ do - termHolidays' <- mapM (formatTime dateFormat) termHolidays + termHolidays' <- mapM (formatTime SelFormatDate) termHolidays [whamlet|