Skip to content

Rotation States

Josh Holland edited this page Sep 4, 2019 · 2 revisions

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.

Clone this wiki locally