63 lines
3.2 KiB
Plaintext
63 lines
3.2 KiB
Plaintext
Sheet -- exercise sheet for a given course
|
|
course CourseId
|
|
name (CI Text)
|
|
description Html Maybe
|
|
type SheetType -- Does it count towards overall course grade?
|
|
grouping SheetGroup -- May participants submit in groups of certain sizes?
|
|
markingText Html Maybe -- Instructons for correctors, included in marking templates
|
|
visibleFrom UTCTime Maybe -- Invisible to enrolled participants before
|
|
activeFrom UTCTime Maybe -- Download of questions and submission is permitted afterwards
|
|
activeTo UTCTime Maybe -- Submission is only permitted before
|
|
hintFrom UTCTime Maybe -- Additional files are made available
|
|
solutionFrom UTCTime Maybe -- Solution is made available
|
|
submissionMode SubmissionMode -- Submission upload by students and/or through tutors?
|
|
autoDistribute Bool default=false -- Should correctors be assigned submissions automagically?
|
|
anonymousCorrection Bool default=true
|
|
requireExamRegistration ExamId Maybe -- Students may only submit if they are registered for the given exam
|
|
allowNonPersonalisedSubmission Bool default=true
|
|
CourseSheet course name
|
|
deriving Generic
|
|
SheetEdit -- who edited when a row in table "Course", kept indefinitely
|
|
user UserId
|
|
time UTCTime
|
|
sheet SheetId
|
|
|
|
-- For anonoymous external submissions (i.e. paper submission tracked in uni2work)
|
|
-- Map pseudonyms to users injectively in the context of a single sheet; for the next sheet all-new pseudonyms need to be created
|
|
-- Chosen uniformly at random when the submitting user presses a button on the view of a sheet
|
|
SheetPseudonym
|
|
sheet SheetId
|
|
pseudonym Pseudonym -- 24-bit number that should be attached to external submission (i.e. written on the submitted paper); encoded as two english words akin to PGP-Wordlist
|
|
user UserId
|
|
UniqueSheetPseudonym sheet pseudonym
|
|
UniqueSheetPseudonymUser sheet user
|
|
SheetCorrector -- grant corrector role to user for a sheet
|
|
user UserId
|
|
sheet SheetId
|
|
load Load -- portion of work that will be assigned to this corrector
|
|
state CorrectorState default='CorrectorNormal' -- whether a corrector is assigned his load this time (e.g. in case of sickness)
|
|
UniqueSheetCorrector user sheet
|
|
deriving Show Eq Ord
|
|
SheetFile -- a file that is part of an exercise sheet
|
|
sheet SheetId
|
|
type SheetFileType -- excercise, marking, hint or solution
|
|
title FilePath
|
|
content FileContentReference Maybe
|
|
modified UTCTime
|
|
UniqueSheetFile sheet type title
|
|
PersonalisedSheetFile
|
|
sheet SheetId
|
|
user UserId
|
|
type SheetFileType
|
|
title FilePath
|
|
content FileContentReference Maybe
|
|
modified UTCTime
|
|
UniquePersonalisedSheetFile sheet user type title
|
|
deriving Eq Ord Read Show Generic Typeable
|
|
|
|
FallbackPersonalisedSheetFilesKey
|
|
course CourseId
|
|
index Word24
|
|
secret ByteString
|
|
generated UTCTime
|
|
UniqueFallbackPersonalisedSheetFilesKey course index |