Added functionality to CourseController and GroupService to allow mass enqueueing for a certain assignment. For each assignment in a course there is a button that allows the user to upload a CSV with groups that then are automatically enqueued for a lab in which they can sign off the assignment.
Added a URL path (/lab/submit) to which a POST-request can be sent with an assignment ID and a netID. The student corresponding to the netID will then be automatically enqueued in a lab where they can sign of the assignment.
Added functionality to timeslot buttons on the lab page to enroll/unenroll students to a specific slot.
What can still be done in the future?
Related to (1.), the mass enqueue button should only be visible when a lab is available for an assignment.
Related to (1.), when a new file is uploaded for the same assignment, users that already have an assigned slot should not be given a new slot, and users that are not present in the new file should have their slot revoked.
Related to (2.), some kind of authentication should be added such that only trusted IP addresses can send POST requests to the /lab/submit URL, or something along those lines.
Related to (2.), when a new post request for the same assignment/user combination is sent, the previous slot should be revoked and a new slot should be assigned.
Since it could happen that multiple assignments can be signed off in the same lab, in case of a different assignment id/same netid combination, a new timeslot should be assigned.
Related to (3.), currently students are given a random slot, even when a specific slot was selected. This should be changed so the selected and the assigned slot match.
Related to (3.), the student for a slot is selected with a drop-down menu. This menu should be filterable so that someone who wants to select a student does not have to scroll through a giant list of students.
Related to (1.) and (2.), some kind of error message should be displayed on screen/sent back to the sender of the POST request when the request fails.