feat(schools): more school-wide configuration authorship statements
This commit is contained in:
parent
67c30165ae
commit
960bd76aca
@ -20,11 +20,13 @@ SchoolAuthorshipStatementModeNone: Keine Eigenständigkeitserklärung erlauben
|
|||||||
SchoolAuthorshipStatementModeOptional: Eigenständigkeitserklärung optional einforderbar
|
SchoolAuthorshipStatementModeOptional: Eigenständigkeitserklärung optional einforderbar
|
||||||
SchoolAuthorshipStatementModeRequired: Eigenständigkeitserklärung immer erforderlich
|
SchoolAuthorshipStatementModeRequired: Eigenständigkeitserklärung immer erforderlich
|
||||||
SchoolSheetAuthorshipStatementMode: Modus für nicht-prüfungsrelevante Übungsblattabgaben
|
SchoolSheetAuthorshipStatementMode: Modus für nicht-prüfungsrelevante Übungsblattabgaben
|
||||||
SchoolSheetAuthorshipStatementExamMode: Modus für prüfungsrelevante Übungsblattabgaben
|
SchoolSheetAuthorshipStatementDefinition: Eigenständigkeitserklärung für nicht-prüfungsrelevante Übungsblattabgaben
|
||||||
SchoolSheetAuthorshipStatementText: Eigenständigkeitserklärung
|
SchoolSheetAuthorshipStatementDefinitionTip: Deutsch und Englisch
|
||||||
SchoolSheetAuthorshipStatementTextTip: Dieser Text dient als Standard-Eigenständigkeitserklärung beim Anlegen eines neuen Übungsblattes innerhalb eines Kurses dieses Instituts. Wenn Anpassungen erlaubt sind, kann diese Erklärung pro Übungsblatt durch einen Dozierenden überschrieben werden.
|
SchoolSheetAuthorshipStatementAllowOther: Abweichende Erklärungen für nicht-prüfungsrelevante Übungsblätter erlauben?
|
||||||
SchoolSheetAuthorshipStatementAllowOther: Anpassungen erlauben?
|
SchoolSheetExamAuthorshipStatementMode: Modus für prüfungsrelevante Übungsblattabgaben
|
||||||
SchoolSheetAuthorshipStatementAllowOtherTip: Soll es Dozierenden erlaubt sein, pro Übungsblatt eine abweichende Eigenständigkeitserklärung anzugeben?
|
SchoolSheetExamAuthorshipStatementDefinition: Eigenständigkeitserklärung für prüfungsrelevante Übungsblattabgaben
|
||||||
|
SchoolSheetExamAuthorshipStatementDefinitionTip: Deutsch und Englisch
|
||||||
|
SchoolSheetExamAuthorshipStatementAllowOther: Abweichende Erklärungen für prüfungsrelevante Übungsblätter erlauben?
|
||||||
|
|
||||||
SchoolUpdated ssh@SchoolId: #{ssh} erfolgreich angepasst
|
SchoolUpdated ssh@SchoolId: #{ssh} erfolgreich angepasst
|
||||||
SchoolTitle ssh@SchoolId: Institut „#{ssh}“
|
SchoolTitle ssh@SchoolId: Institut „#{ssh}“
|
||||||
|
|||||||
@ -20,11 +20,13 @@ SchoolAuthorshipStatementModeNone: No Statement of Authorship allowed
|
|||||||
SchoolAuthorshipStatementModeOptional: Statement of Authorship optionally activatable
|
SchoolAuthorshipStatementModeOptional: Statement of Authorship optionally activatable
|
||||||
SchoolAuthorshipStatementModeRequired: Statement of Authorship always required
|
SchoolAuthorshipStatementModeRequired: Statement of Authorship always required
|
||||||
SchoolSheetAuthorshipStatementMode: Mode for exam-unrelated exercise sheets
|
SchoolSheetAuthorshipStatementMode: Mode for exam-unrelated exercise sheets
|
||||||
SchoolSheetAuthorshipStatementExamMode: Mode for exam-related sheets
|
SchoolSheetAuthorshipStatementDefinition: Statement of Authorship for exam-unrelated exercise sheets
|
||||||
SchoolSheetAuthorshipStatementText: Statement of Authorship
|
SchoolSheetAuthorshipStatementDefinitionTip: German and English
|
||||||
SchoolSheetAuthorshipStatementTextTip: This text serves as default Statement of Authorship upon creating a new exercise sheet in a course of this school. This statement may be overriden by a course administrator per exercise sheet if adaptations are allowed.
|
SchoolSheetAuthorshipStatementAllowOther: Allow adaptations for exam-unrelated exercise sheets?
|
||||||
SchoolSheetAuthorshipStatementAllowOther: Allow adaptations?
|
SchoolSheetExamAuthorshipStatementMode: Mode for exam-related exercise sheets
|
||||||
SchoolSheetAuthorshipStatementAllowOtherTip: Should course administrators be allowed to specify an alternative Statement of Authorship?
|
SchoolSheetExamAuthorshipStatementDefinition: Statement of Authorship for exam-related exercise sheets
|
||||||
|
SchoolSheetExamAuthorshipStatementDefinitionTip: German and English
|
||||||
|
SchoolSheetExamAuthorshipStatementAllowOther: Allow adaptations for exam-related exercise sheets?
|
||||||
|
|
||||||
SchoolUpdated ssh: Successfully edited #{ssh}
|
SchoolUpdated ssh: Successfully edited #{ssh}
|
||||||
SchoolTitle ssh: Department „#{ssh}“
|
SchoolTitle ssh: Department „#{ssh}“
|
||||||
|
|||||||
17
models/authorship-statements.model
Normal file
17
models/authorship-statements.model
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
AuthorshipStatementDefinition
|
||||||
|
content StoredMarkup -- must contain statements in all relevant languages for now, TODO: refactor (use translations as below)
|
||||||
|
deriving Generic
|
||||||
|
-- AuthorshipStatementDefinitionTranslation
|
||||||
|
-- definition AuthorshipStatementDefinitionId
|
||||||
|
-- language Lang
|
||||||
|
-- content StoredMarkup
|
||||||
|
-- UniqueAuthorshipStatementDefinitionTranslation definition language
|
||||||
|
-- deriving Generic
|
||||||
|
|
||||||
|
-- Statement of Authorship to be issued upon submitting a solution for an exercise sheet
|
||||||
|
-- TODO: maybe move to SubmissionUser? (With statementSigned :: Bool, statement :: Maybe StoredMarkup)
|
||||||
|
AuthorshipStatementSubmission
|
||||||
|
submissionUser SubmissionUserId
|
||||||
|
statement StoredMarkup -- stored as plain StoredMarkup as the "signed" statement needs to be persisted
|
||||||
|
UniqueAuthorshipStatementSubmission submissionUser
|
||||||
|
deriving Generic
|
||||||
@ -9,9 +9,11 @@ School json
|
|||||||
examDiscouragedModes ExamModeDNF
|
examDiscouragedModes ExamModeDNF
|
||||||
examCloseMode ExamCloseMode default='separate'
|
examCloseMode ExamCloseMode default='separate'
|
||||||
sheetAuthorshipStatementMode SchoolAuthorshipStatementMode default='optional'
|
sheetAuthorshipStatementMode SchoolAuthorshipStatementMode default='optional'
|
||||||
sheetAuthorshipStatementExamMode SchoolAuthorshipStatementMode default='optional'
|
sheetAuthorshipStatementDefinition AuthorshipStatementDefinitionId Maybe
|
||||||
sheetAuthorshipStatementText StoredMarkup Maybe
|
|
||||||
sheetAuthorshipStatementAllowOther Bool default=true
|
sheetAuthorshipStatementAllowOther Bool default=true
|
||||||
|
sheetExamAuthorshipStatementMode SchoolAuthorshipStatementMode default='optional'
|
||||||
|
sheetExamAuthorshipStatementDefinition AuthorshipStatementDefinitionId Maybe
|
||||||
|
sheetExamAuthorshipStatementAllowOther Bool default=true
|
||||||
UniqueSchool name
|
UniqueSchool name
|
||||||
UniqueSchoolShorthand shorthand -- required for Normalisation of CI Text
|
UniqueSchoolShorthand shorthand -- required for Normalisation of CI Text
|
||||||
Primary shorthand -- newtype Key School = SchoolKey { unSchoolKey :: SchoolShorthand }
|
Primary shorthand -- newtype Key School = SchoolKey { unSchoolKey :: SchoolShorthand }
|
||||||
|
|||||||
@ -15,6 +15,8 @@ Sheet -- exercise sheet for a given course
|
|||||||
anonymousCorrection Bool default=true
|
anonymousCorrection Bool default=true
|
||||||
requireExamRegistration ExamId Maybe -- Students may only submit if they are registered for the given exam
|
requireExamRegistration ExamId Maybe -- Students may only submit if they are registered for the given exam
|
||||||
allowNonPersonalisedSubmission Bool default=true
|
allowNonPersonalisedSubmission Bool default=true
|
||||||
|
-- authorshipStatementRequired Bool default=false
|
||||||
|
-- authorshipStatementDefinition AuthorshipStatementDefinitionId Maybe
|
||||||
CourseSheet course name
|
CourseSheet course name
|
||||||
deriving Generic
|
deriving Generic
|
||||||
SheetEdit -- who edited when a row in table "Course", kept indefinitely
|
SheetEdit -- who edited when a row in table "Course", kept indefinitely
|
||||||
|
|||||||
@ -69,9 +69,11 @@ data SchoolForm = SchoolForm
|
|||||||
, sfExamDiscouragedModes :: ExamModeDNF
|
, sfExamDiscouragedModes :: ExamModeDNF
|
||||||
, sfExamCloseMode :: ExamCloseMode
|
, sfExamCloseMode :: ExamCloseMode
|
||||||
, sfSheetAuthorshipStatementMode :: SchoolAuthorshipStatementMode
|
, sfSheetAuthorshipStatementMode :: SchoolAuthorshipStatementMode
|
||||||
, sfSheetAuthorshipStatementExamMode :: SchoolAuthorshipStatementMode
|
, sfSheetAuthorshipStatementDefinition :: Maybe StoredMarkup -- TODO: Must contain statements in all relevant languages for now; later use `Maybe (Map Lang StoredMarkup)` instead
|
||||||
, sfSheetAuthorshipStatementText :: Maybe StoredMarkup
|
|
||||||
, sfSheetAuthorshipStatementAllowOther :: Bool
|
, sfSheetAuthorshipStatementAllowOther :: Bool
|
||||||
|
, sfSheetExamAuthorshipStatementMode :: SchoolAuthorshipStatementMode
|
||||||
|
, sfSheetExamAuthorshipStatementDefinition :: Maybe StoredMarkup -- TODO: Must contain statements in all relevant languages for now; later use `Maybe (Map Lang StoredMarkup)` instead
|
||||||
|
, sfSheetExamAuthorshipStatementAllowOther :: Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
mkSchoolForm :: Maybe SchoolId -> Maybe SchoolForm -> Form SchoolForm
|
mkSchoolForm :: Maybe SchoolId -> Maybe SchoolForm -> Form SchoolForm
|
||||||
@ -87,9 +89,11 @@ mkSchoolForm mSsh template = renderAForm FormStandard $ SchoolForm
|
|||||||
<*> apopt (selectField optionsFinite) (fslI MsgExamCloseMode) (sfExamCloseMode <$> template <|> pure ExamCloseSeparate)
|
<*> apopt (selectField optionsFinite) (fslI MsgExamCloseMode) (sfExamCloseMode <$> template <|> pure ExamCloseSeparate)
|
||||||
<* aformSection MsgSchoolAuthorshipStatementSection
|
<* aformSection MsgSchoolAuthorshipStatementSection
|
||||||
<*> apopt (selectField optionsFinite) (fslI MsgSchoolSheetAuthorshipStatementMode) (sfSheetAuthorshipStatementMode <$> template <|> pure SchoolAuthorshipStatementModeOptional)
|
<*> apopt (selectField optionsFinite) (fslI MsgSchoolSheetAuthorshipStatementMode) (sfSheetAuthorshipStatementMode <$> template <|> pure SchoolAuthorshipStatementModeOptional)
|
||||||
<*> apopt (selectField optionsFinite) (fslI MsgSchoolSheetAuthorshipStatementExamMode) (sfSheetAuthorshipStatementExamMode <$> template <|> pure SchoolAuthorshipStatementModeOptional)
|
<*> aopt htmlField (fslI MsgSchoolSheetAuthorshipStatementDefinition & setTooltip MsgSchoolSheetAuthorshipStatementDefinitionTip) (sfSheetAuthorshipStatementDefinition <$> template)
|
||||||
<*> aopt htmlField (fslI MsgSchoolSheetAuthorshipStatementText & setTooltip MsgSchoolSheetAuthorshipStatementTextTip) (sfSheetAuthorshipStatementText <$> template)
|
<*> apopt checkBoxField (fslI MsgSchoolSheetAuthorshipStatementAllowOther) (sfSheetAuthorshipStatementAllowOther <$> template <|> pure True)
|
||||||
<*> apopt checkBoxField (fslI MsgSchoolSheetAuthorshipStatementAllowOther & setTooltip MsgSchoolSheetAuthorshipStatementAllowOtherTip) (sfSheetAuthorshipStatementAllowOther <$> template <|> pure True)
|
<*> apopt (selectField optionsFinite) (fslI MsgSchoolSheetExamAuthorshipStatementMode) (sfSheetExamAuthorshipStatementMode <$> template <|> pure SchoolAuthorshipStatementModeOptional)
|
||||||
|
<*> aopt htmlField (fslI MsgSchoolSheetExamAuthorshipStatementDefinition & setTooltip MsgSchoolSheetExamAuthorshipStatementDefinitionTip) (sfSheetExamAuthorshipStatementDefinition <$> template)
|
||||||
|
<*> apopt checkBoxField (fslI MsgSchoolSheetExamAuthorshipStatementAllowOther) (sfSheetExamAuthorshipStatementAllowOther <$> template <|> pure True)
|
||||||
where
|
where
|
||||||
ldapOrgs :: HandlerFor UniWorX (OptionList (CI Text))
|
ldapOrgs :: HandlerFor UniWorX (OptionList (CI Text))
|
||||||
ldapOrgs = fmap (mkOptionList . map (\t -> Option (CI.original t) t (CI.original t)) . Set.toAscList) . runDB $
|
ldapOrgs = fmap (mkOptionList . map (\t -> Option (CI.original t) t (CI.original t)) . Set.toAscList) . runDB $
|
||||||
@ -99,6 +103,15 @@ schoolToForm :: SchoolId -> DB (Form SchoolForm)
|
|||||||
schoolToForm ssh = do
|
schoolToForm ssh = do
|
||||||
School{..} <- get404 ssh
|
School{..} <- get404 ssh
|
||||||
ldapFrags <- selectList [SchoolLdapSchool ==. Just ssh] []
|
ldapFrags <- selectList [SchoolLdapSchool ==. Just ssh] []
|
||||||
|
|
||||||
|
-- TODO: allow for separate translations
|
||||||
|
-- let getAuthorshipStatementDefs = maybe (return Nothing) (\definitionId -> Just <$> selectList [ AuthorshipStatementDefinitionTranslationDefinition ==. definitionId ] [])
|
||||||
|
-- authorshipStatementDefs <- getAuthorshipStatementDefs schoolSheetAuthorshipStatementDefinition
|
||||||
|
-- examAuthorshipStatementDefs <- getAuthorshipStatementDefs schoolSheetExamAuthorshipStatementDefinition
|
||||||
|
|
||||||
|
mSheetAuthorshipStatementDefinition <- maybe (return Nothing) get schoolSheetAuthorshipStatementDefinition
|
||||||
|
mSheetExamAuthorshipStatementDefinition <- maybe (return Nothing) get schoolSheetExamAuthorshipStatementDefinition
|
||||||
|
|
||||||
return . mkSchoolForm (Just ssh) $ Just SchoolForm
|
return . mkSchoolForm (Just ssh) $ Just SchoolForm
|
||||||
{ sfShorthand = schoolShorthand
|
{ sfShorthand = schoolShorthand
|
||||||
, sfName = schoolName
|
, sfName = schoolName
|
||||||
@ -109,9 +122,11 @@ schoolToForm ssh = do
|
|||||||
, sfExamDiscouragedModes = schoolExamDiscouragedModes
|
, sfExamDiscouragedModes = schoolExamDiscouragedModes
|
||||||
, sfExamCloseMode = schoolExamCloseMode
|
, sfExamCloseMode = schoolExamCloseMode
|
||||||
, sfSheetAuthorshipStatementMode = schoolSheetAuthorshipStatementMode
|
, sfSheetAuthorshipStatementMode = schoolSheetAuthorshipStatementMode
|
||||||
, sfSheetAuthorshipStatementExamMode = schoolSheetAuthorshipStatementExamMode
|
, sfSheetAuthorshipStatementDefinition = authorshipStatementDefinitionContent <$> mSheetAuthorshipStatementDefinition
|
||||||
, sfSheetAuthorshipStatementText = schoolSheetAuthorshipStatementText
|
|
||||||
, sfSheetAuthorshipStatementAllowOther = schoolSheetAuthorshipStatementAllowOther
|
, sfSheetAuthorshipStatementAllowOther = schoolSheetAuthorshipStatementAllowOther
|
||||||
|
, sfSheetExamAuthorshipStatementMode = schoolSheetExamAuthorshipStatementMode
|
||||||
|
, sfSheetExamAuthorshipStatementDefinition = authorshipStatementDefinitionContent <$> mSheetExamAuthorshipStatementDefinition
|
||||||
|
, sfSheetExamAuthorshipStatementAllowOther = schoolSheetExamAuthorshipStatementAllowOther
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -126,6 +141,9 @@ postSchoolEditR ssh = do
|
|||||||
|
|
||||||
formResult sfResult $ \SchoolForm{..} -> do
|
formResult sfResult $ \SchoolForm{..} -> do
|
||||||
runDB $ do
|
runDB $ do
|
||||||
|
let
|
||||||
|
mAuthorshipStatementId = error "WIP upsert authorship statement"
|
||||||
|
mExamAuthorshipStatementId = error "WIP upsert exam authorship statement"
|
||||||
update ssh
|
update ssh
|
||||||
[ SchoolName =. sfName
|
[ SchoolName =. sfName
|
||||||
, SchoolExamMinimumRegisterBeforeStart =. sfExamMinimumRegisterBeforeStart
|
, SchoolExamMinimumRegisterBeforeStart =. sfExamMinimumRegisterBeforeStart
|
||||||
@ -134,9 +152,11 @@ postSchoolEditR ssh = do
|
|||||||
, SchoolExamDiscouragedModes =. sfExamDiscouragedModes
|
, SchoolExamDiscouragedModes =. sfExamDiscouragedModes
|
||||||
, SchoolExamCloseMode =. sfExamCloseMode
|
, SchoolExamCloseMode =. sfExamCloseMode
|
||||||
, SchoolSheetAuthorshipStatementMode =. sfSheetAuthorshipStatementMode
|
, SchoolSheetAuthorshipStatementMode =. sfSheetAuthorshipStatementMode
|
||||||
, SchoolSheetAuthorshipStatementExamMode =. sfSheetAuthorshipStatementExamMode
|
, SchoolSheetAuthorshipStatementDefinition =. mAuthorshipStatementId
|
||||||
, SchoolSheetAuthorshipStatementText =. sfSheetAuthorshipStatementText
|
|
||||||
, SchoolSheetAuthorshipStatementAllowOther =. sfSheetAuthorshipStatementAllowOther
|
, SchoolSheetAuthorshipStatementAllowOther =. sfSheetAuthorshipStatementAllowOther
|
||||||
|
, SchoolSheetExamAuthorshipStatementMode =. sfSheetExamAuthorshipStatementMode
|
||||||
|
, SchoolSheetExamAuthorshipStatementDefinition =. mExamAuthorshipStatementId
|
||||||
|
, SchoolSheetExamAuthorshipStatementAllowOther =. sfSheetExamAuthorshipStatementAllowOther
|
||||||
]
|
]
|
||||||
forM_ sfOrgUnits $ \schoolLdapOrgUnit ->
|
forM_ sfOrgUnits $ \schoolLdapOrgUnit ->
|
||||||
void $ upsert SchoolLdap
|
void $ upsert SchoolLdap
|
||||||
@ -171,6 +191,9 @@ postSchoolNewR = do
|
|||||||
formResult sfResult $ \SchoolForm{..} -> do
|
formResult sfResult $ \SchoolForm{..} -> do
|
||||||
let ssh = SchoolKey sfShorthand
|
let ssh = SchoolKey sfShorthand
|
||||||
insertOkay <- runDB $ do
|
insertOkay <- runDB $ do
|
||||||
|
let
|
||||||
|
mAuthorshipStatementId = error "WIP insert authorship statement"
|
||||||
|
mExamAuthorshipStatementId = error "WIP insert exam authorship statement"
|
||||||
didInsert <- is _Just <$> insertUnique School
|
didInsert <- is _Just <$> insertUnique School
|
||||||
{ schoolShorthand = sfShorthand
|
{ schoolShorthand = sfShorthand
|
||||||
, schoolName = sfName
|
, schoolName = sfName
|
||||||
@ -180,9 +203,11 @@ postSchoolNewR = do
|
|||||||
, schoolExamDiscouragedModes = sfExamDiscouragedModes
|
, schoolExamDiscouragedModes = sfExamDiscouragedModes
|
||||||
, schoolExamCloseMode = sfExamCloseMode
|
, schoolExamCloseMode = sfExamCloseMode
|
||||||
, schoolSheetAuthorshipStatementMode = sfSheetAuthorshipStatementMode
|
, schoolSheetAuthorshipStatementMode = sfSheetAuthorshipStatementMode
|
||||||
, schoolSheetAuthorshipStatementExamMode = sfSheetAuthorshipStatementExamMode
|
, schoolSheetAuthorshipStatementDefinition = mAuthorshipStatementId
|
||||||
, schoolSheetAuthorshipStatementText = sfSheetAuthorshipStatementText
|
|
||||||
, schoolSheetAuthorshipStatementAllowOther = sfSheetAuthorshipStatementAllowOther
|
, schoolSheetAuthorshipStatementAllowOther = sfSheetAuthorshipStatementAllowOther
|
||||||
|
, schoolSheetExamAuthorshipStatementMode = sfSheetExamAuthorshipStatementMode
|
||||||
|
, schoolSheetExamAuthorshipStatementDefinition = mExamAuthorshipStatementId
|
||||||
|
, schoolSheetExamAuthorshipStatementAllowOther = sfSheetExamAuthorshipStatementAllowOther
|
||||||
}
|
}
|
||||||
when didInsert $ do
|
when didInsert $ do
|
||||||
insert_ UserFunction
|
insert_ UserFunction
|
||||||
|
|||||||
@ -103,6 +103,9 @@ data ManualMigration
|
|||||||
| Migration20210208StudyFeaturesRelevanceCachedUUIDs
|
| Migration20210208StudyFeaturesRelevanceCachedUUIDs
|
||||||
| Migration20210318CrontabSubmissionRatedNotification
|
| Migration20210318CrontabSubmissionRatedNotification
|
||||||
| Migration20210608SeparateTermActive
|
| Migration20210608SeparateTermActive
|
||||||
|
-- TODO: migration regarding authorship statements
|
||||||
|
-- - apply desired non-default modes for IfI
|
||||||
|
-- - set authorship statement texts for IfI
|
||||||
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic, Typeable)
|
deriving (Eq, Ord, Read, Show, Enum, Bounded, Generic, Typeable)
|
||||||
deriving anyclass (Universe, Finite)
|
deriving anyclass (Universe, Finite)
|
||||||
|
|
||||||
|
|||||||
@ -411,8 +411,9 @@ fillDb = do
|
|||||||
, termLectureEnd
|
, termLectureEnd
|
||||||
}
|
}
|
||||||
void . insert_ $ TermActive (TermKey term) (toMidnight $ addDays (-60) termStart) (Just . beforeMidnight $ addDays 60 termEnd) Nothing
|
void . insert_ $ TermActive (TermKey term) (toMidnight $ addDays (-60) termStart) (Just . beforeMidnight $ addDays 60 termEnd) Nothing
|
||||||
ifi <- insert' $ School "Institut für Informatik" "IfI" (Just $ 14 * nominalDay) (Just $ 10 * nominalDay) True (ExamModeDNF predDNFFalse) (ExamCloseOnFinished True) SchoolAuthorshipStatementModeOptional SchoolAuthorshipStatementModeRequired (Just "<strong>Erklärung über die eigenständige Bearbeitung</strong><br><br>Hiermit erkläre ich, dass ich die vorliegende Abgabe vollständig selbstständig angefertigt habe, bzw. dass bei einer Gruppen-Abgabe nur die bei der Abgabe benannten Personen mitgewirkt haben.<br><br>Quellen und Hilfsmittel über den Rahmen der Lehrveranstaltung hinaus sind als solche markiert und angegeben. Direkte Zitate sind als solche kenntlich gemacht.<br><br>Ich bin mir darüber im Klaren, dass Verstöße durch Plagiate oder Zusammenarbeit mit Dritten zum Ausschluss von der Veranstaltung führen.") False
|
ifiAuthorshipStatement <- insert $ AuthorshipStatementDefinition "<strong>Erklärung über die eigenständige Bearbeitung</strong><p>Hiermit erkläre ich, dass ich die vorliegende Abgabe vollständig selbstständig angefertigt habe, bzw. dass bei einer Gruppen-Abgabe nur die bei der Abgabe benannten Personen mitgewirkt haben. Quellen und Hilfsmittel über den Rahmen der Lehrveranstaltung hinaus sind als solche markiert und angegeben. Direkte Zitate sind als solche kenntlich gemacht. Ich bin mir darüber im Klaren, dass Verstöße durch Plagiate oder Zusammenarbeit mit Dritten zum Ausschluss von der Veranstaltung führen.</p><strong>Statement of Authorship</strong><p>TODO English version</p>"
|
||||||
mi <- insert' $ School "Institut für Mathematik" "MI" Nothing Nothing False (ExamModeDNF predDNFFalse) (ExamCloseOnFinished False) SchoolAuthorshipStatementModeNone SchoolAuthorshipStatementModeOptional Nothing True
|
ifi <- insert' $ School "Institut für Informatik" "IfI" (Just $ 14 * nominalDay) (Just $ 10 * nominalDay) True (ExamModeDNF predDNFFalse) (ExamCloseOnFinished True) SchoolAuthorshipStatementModeOptional (Just ifiAuthorshipStatement) True SchoolAuthorshipStatementModeRequired (Just ifiAuthorshipStatement) False
|
||||||
|
mi <- insert' $ School "Institut für Mathematik" "MI" Nothing Nothing False (ExamModeDNF predDNFFalse) (ExamCloseOnFinished False) SchoolAuthorshipStatementModeNone Nothing True SchoolAuthorshipStatementModeOptional Nothing True
|
||||||
void . insert' $ UserFunction gkleen ifi SchoolAdmin
|
void . insert' $ UserFunction gkleen ifi SchoolAdmin
|
||||||
void . insert' $ UserFunction gkleen mi SchoolAdmin
|
void . insert' $ UserFunction gkleen mi SchoolAdmin
|
||||||
void . insert' $ UserFunction fhamann ifi SchoolAdmin
|
void . insert' $ UserFunction fhamann ifi SchoolAdmin
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user