Exam course CourseId name ExamName gradingRule ExamGradingRule Maybe bonusRule ExamBonusRule Maybe occurrenceRule ExamOccurrenceRule examOccurrenceMapping (ExamOccurrenceMapping ExamOccurrenceName) Maybe visibleFrom UTCTime Maybe registerFrom UTCTime Maybe registerTo UTCTime Maybe deregisterUntil UTCTime Maybe publishOccurrenceAssignments UTCTime Maybe start UTCTime Maybe end UTCTime Maybe finished UTCTime Maybe -- Grades shown to students, `ExamCorrector`s locked out closed UTCTime Maybe -- Prüfungsamt hat Einsicht (notification) publicStatistics Bool gradingMode ExamGradingMode description StoredMarkup Maybe examMode ExamMode staff Text Maybe partsFrom UTCTime Maybe UniqueExam course name ExamPart exam ExamId number ExamPartNumber name ExamPartName Maybe maxPoints Points Maybe weight Rational UniqueExamPartNumber exam number UniqueExamPartName exam name !force deriving Read Show Eq Ord Generic Typeable ExamOccurrence exam ExamId name ExamOccurrenceName room RoomReference Maybe roomHidden Bool default=false capacity Word64 start UTCTime end UTCTime Maybe description StoredMarkup Maybe UniqueExamOccurrence exam name ExamRegistration exam ExamId user UserId occurrence ExamOccurrenceId Maybe time UTCTime default=now() UniqueExamRegistration exam user deriving Eq Ord Show ExamPartResult examPart ExamPartId user UserId result ExamResultPoints lastChanged UTCTime default=now() UniqueExamPartResult examPart user deriving Eq Ord Show ExamBonus exam ExamId user UserId bonus Points lastChanged UTCTime default=now() UniqueExamBonus exam user deriving Eq Ord Show ExamResult exam ExamId user UserId result ExamResultPassedGrade lastChanged UTCTime default=now() UniqueExamResult exam user deriving Eq Ord Show ExamCorrector exam ExamId user UserId UniqueExamCorrector exam user ExamPartCorrector part ExamPartId corrector ExamCorrectorId UniqueExamPartCorrector part corrector ExamOfficeSchool school SchoolId exam ExamId UniqueExamOfficeSchool exam school