-
Notifications
You must be signed in to change notification settings - Fork 0
Rotation States
The rotation has a bunch of flags that get set in various combinations over the course of a rotation. This page is basically a condensed version of the full State Machine.
NB: this page is accurate as of commit 154bcce
.
Flags:
-
student_viewable
– whether students are allowed to view the projects in the rotation -
student_choosable
– whether students are allowed to submit votes for their preferred projects for the rotation -
student_uploadable
– whether students are allowed to upload reports for their project in this rotation -
can_finalise
– whether the Graduate Office can finalise the assignment of projects to students -
read_only
– whether supervisors/the Graduate Office are allowed to create/delete projects or pre-assign students to projects
When a rotation is created, all flags are false.
When students are invited to view the rotation, the flags change:
student_viewable = True
student_choosable = True
student_uploadable = False
can_finalise = False
read_only = False
When the deadline for students to submit their project choices passes:
student_viewable = True
student_choosable = False
student_uploadable = False
can_finalise = True
read_only = True
When the Graduate Office finalises project assignments:
student_viewable = True
student_choosable = False
student_uploadable = True
can_finalise = False
read_only = True
The rotation's state does not change further beyond this point.
(After this, the state changes happen at the level of individual projects rather than for the whole rotation, e.g. Project.uploaded
and Project.grace_passed
– see State Machine for details.)
There is an additional state, used for the initial automatically-created dummy rotation:
student_viewable = False
student_choosable = False
student_uploadable = False
can_finalise = False
read_only = True
The state of this rotation never changes, and the combination of read_only
and not student_viewable
triggers special handling in the frontend to prompt the Graduate Office to create a new rotation.