72 lines
4.4 KiB
Plaintext
72 lines
4.4 KiB
Plaintext
Allocation -- attributes with prefix staff- affect lecturers only, but are invisble to students
|
|
name (CI Text)
|
|
shorthand (CI Text) -- practical shorthand
|
|
term TermId
|
|
school SchoolId -- school that manages this central allocation, not necessarily school of courses
|
|
description Html Maybe -- description for prospective students
|
|
staffDescription Html Maybe -- description seen by prospective lecturers only
|
|
linkExternal Text Maybe -- arbitrary user-defined url for external course page
|
|
capacity Int Maybe -- number of allowed enrolements, if restricte
|
|
staffRegisterFrom UTCTime Maybe -- lectureres may register courses
|
|
staffRegisterTo UTCTime Maybe -- course registration stops
|
|
-- staffDeregisterUntil not needed: staff may make arbitrary changes until staffRegisterTo, always frozen afterwards
|
|
staffAllocationFrom UTCTime Maybe -- lecturers may rate applicants from this day onwwards or prohibited
|
|
staffAllocationTo UTCTime Maybe --
|
|
-- Student register for this allocation
|
|
-- canRegisterNow = maybe False (<= currentTime) registerFrom && maybe True (>= currentTime) registerTo
|
|
registerFrom UTCTime Maybe -- student applications allowed from a given day onwwards or prohibited
|
|
registerTo UTCTime Maybe -- student applications may be prohibited from a given date onwards
|
|
-- deregisterUntil not needed: students may withdraw applicants until registerTo, but never after. Also see overrideDeregister
|
|
registerSecret Text Maybe -- student application maybe protected by a simple common passphrase
|
|
-- overrides
|
|
registerByStaffFrom UTCTime Maybe -- lecturers may directly enrol/disenrol students after a given date or prohibited
|
|
registerByStaffTo UTCTime Maybe
|
|
registerByCourse UTCTime Maybe -- course registration dates are ignored until this day has passed or always prohibited
|
|
overrideDeregister UTCTime Maybe -- course deregistration enforced to be this date, i.e. students may disenrol from course after or never
|
|
-- overrideVisible not needed, since courses are always visible
|
|
TermSchoolAllocationShort term school shorthand -- shorthand must be unique within school and semester
|
|
TermSchoolAllocationName term school name -- name must be unique within school and semester
|
|
|
|
AllocationCourse
|
|
allocation AllocationId
|
|
course CourseId
|
|
minCapacity Int -- if the course would get assigned fewer than this many applicants, restart the assignment process without the course
|
|
instructions Html Maybe -- instructions from the lecturer to applicants
|
|
applicationText Bool -- lecturer will read application texts supplied by users
|
|
applicationFiles UploadMode -- lecturer wants to receive course specific application files
|
|
ratingsVisible Bool -- lecturer wants applicants to receive feedback on their application (Grade & comment)
|
|
UniqueAllocationCourse course
|
|
|
|
AllocationCourseFile
|
|
allocationCourse AllocationCourseId
|
|
file FileId
|
|
UniqueAllocationCourseFile allocationCourse file
|
|
|
|
AllocationUser
|
|
allocation AllocationId
|
|
user UserId
|
|
totalCourses Natural -- number of total allocated courses for this user must be <= than this number
|
|
UniqueAllocationUser allocation user
|
|
|
|
AllocationApplication
|
|
allocationCourse AllocationCourseId
|
|
allocationUser AllocationUserId
|
|
text Text Maybe -- free text entered by user
|
|
priority Natural -- priority, higher number means higher priority
|
|
ratingVeto Bool
|
|
ratingPoints ExamGrade Maybe
|
|
ratingComment Text Maybe
|
|
UniqueAllocationApplication allocationCourse allocationUser
|
|
|
|
AllocationApplicationFile -- supplemental file for application by a user for a certain course
|
|
application AllocationApplicationId
|
|
file FileId
|
|
UniqueAllocationUserFile application file
|
|
|
|
AllocationDeregister -- self-inflicted user-deregistrations from an allocated course
|
|
user UserId
|
|
allocation AllocationId Maybe
|
|
course CourseId Maybe
|
|
time UTCTime
|
|
reason Text Maybe -- if this deregistration was done by proxy (e.g. the lecturer pressed the button)
|