diff --git a/messages/uniworx/categories/courses/sheet/de-de-formal.msg b/messages/uniworx/categories/courses/sheet/de-de-formal.msg index 2239f3e4e..0a0b21fda 100644 --- a/messages/uniworx/categories/courses/sheet/de-de-formal.msg +++ b/messages/uniworx/categories/courses/sheet/de-de-formal.msg @@ -164,4 +164,6 @@ SheetAuthorshipStatementExam: Zugeordnete Prüfung SheetAuthorshipStatementMode: Eigenständigkeitserklärung SheetAuthorshipStatementModeDisabled: Keine Eigenständigkeitserklärungen SheetAuthorshipStatementModeExam: Einstellung folgt Prüfung -SheetAuthorshipStatementModeEnabled: Eigenständigkeitserklärungen fordern \ No newline at end of file +SheetAuthorshipStatementModeEnabled: Eigenständigkeitserklärungen fordern +SheetShowAuthorshipStatementsRequired: Eigenständigkeitserklärungen +SheetShowAuthorshipStatementsRequiredYes: Um eine Abgabe anzulegen muss eine Eigenständigkeitserklärung abgegeben werden \ No newline at end of file diff --git a/messages/uniworx/categories/courses/sheet/en-eu.msg b/messages/uniworx/categories/courses/sheet/en-eu.msg index 6924f14af..0577da6f9 100644 --- a/messages/uniworx/categories/courses/sheet/en-eu.msg +++ b/messages/uniworx/categories/courses/sheet/en-eu.msg @@ -164,3 +164,5 @@ SheetAuthorshipStatementMode: Statements of Authorship SheetAuthorshipStatementModeDisabled: No Statements of Authorship SheetAuthorshipStatementModeExam: Setting follows exam SheetAuthorshipStatementModeEnabled: Demand Statements of Authorship +SheetShowAuthorshipStatementsRequired: Statements of Authorship +SheetShowAuthorshipStatementsRequiredYes: To submit for this exercise sheet a Statement of Authorship is required diff --git a/src/Handler/Exam/Form.hs b/src/Handler/Exam/Form.hs index dedf18b60..5f40b4248 100644 --- a/src/Handler/Exam/Form.hs +++ b/src/Handler/Exam/Form.hs @@ -169,7 +169,7 @@ examForm (Entity _ Course{..}) template csrf = hoist liftHandler $ do *> case otherMode of SchoolAuthorshipStatementModeOptional -> optionalActionA (fmapAForm (formResultUnOpt mr' MsgSheetAuthorshipStatementContent) $ contentField id) (fslI MsgExamAuthorshipStatementRequired & setTooltip MsgExamAuthorshipStatementRequiredTip) - (is _Just . efAuthorshipStatement <$> template) + ((is _Just . efAuthorshipStatement <$> template) <|> Just (is _Just mSchoolAuthorshipStatement)) SchoolAuthorshipStatementModeRequired -> contentField $ setTooltip MsgExamAuthorshipStatementRequiredForcedTip _none -> pure Nothing diff --git a/src/Handler/Sheet/Show.hs b/src/Handler/Sheet/Show.hs index 1fdaaab21..a416b5aaa 100644 --- a/src/Handler/Sheet/Show.hs +++ b/src/Handler/Sheet/Show.hs @@ -19,7 +19,7 @@ getSShowR :: TermId -> SchoolId -> CourseShorthand -> SheetName -> Handler Html getSShowR tid ssh csh shn = do now <- liftIO getCurrentTime muid <- maybeAuthId - Entity sid sheet <- runDB $ fetchSheet tid ssh csh shn + sheetEnt@(Entity sid sheet) <- runDB $ fetchSheet tid ssh csh shn seeAllModificationTimestamps <- hasReadAccessTo $ CSheetR tid ssh csh shn SIsCorrR -- ordinary users should not see modification dates older than visibility -- mayEdit <- hasWriteAccessTo $ CSheetR tid ssh csh shn SEditR @@ -154,6 +154,7 @@ getSShowR tid ssh csh shn = do return $ notification NotificationBroad =<< messageI Warning MsgSheetSubmissionModeNoneWithoutNotGraded sTypeDesc <- runDB $ sheetTypeDescription (sheetCourse sheet) (sheetType sheet) + authorshipStatementRequired <- fmap (is _Just) . runDB $ getSheetAuthorshipStatement sheetEnt defaultLayout $ do setTitleI $ prependCourseTitle tid ssh csh $ SomeMessage shn diff --git a/src/Handler/Utils/Form.hs b/src/Handler/Utils/Form.hs index d3462f37e..34a372192 100644 --- a/src/Handler/Utils/Form.hs +++ b/src/Handler/Utils/Form.hs @@ -2453,7 +2453,7 @@ i18nForm strForm onlyAppLanguages miButtonAction miIdent fSettings fRequired mPr = all ((&&) <$> not . null <*> T.all Char.isAlpha) lParts && not (null lParts) - (langRes, langView) <- mpopt (hoistField liftHandler langField' & isoField _Unwrapped) (def & addName (nudge "lang")) $ missingLangs liveliness ^? _head + (langRes, langView) <- mpreq (hoistField liftHandler langField' & isoField _Unwrapped) (def & addName (nudge "lang")) $ missingLangs liveliness ^? _head MsgRenderer mr <- getMsgRenderer let res = langRes <&> \newLang oldLangs -> if diff --git a/templates/sheetShow.hamlet b/templates/sheetShow.hamlet index ec8c6e259..d2b555d9b 100644 --- a/templates/sheetShow.hamlet +++ b/templates/sheetShow.hamlet @@ -75,6 +75,11 @@ $#