Creates completion for the user if eligible and previous one doesnโt exist. Returns an Option containing
the completion if one exists after calling this function.
Gets a preview of changes that will occur to completions with the given manual completion data.
Gets course modules with userโs completion status for the given instance.
Goes through all course instances on a course and grants completions to users on those courses
where eligible.
Goes through all users on the course instance and grants them completions where eligible.
Checks whether the course module can be completed automatically and creates an entry for completion
if the user meets the criteria. Also re-checks module completion prerequisites if the module is
completed.
Fetches all course module completions for the given user on the given course and updates the
prerequisite module completion statuses for any completions that are missing them.
Checks whether the student can partake in an exam.
Returns true if there is at least one exam associated with the course, that has ended and the
user has received enough points from it.