As an instructor, I can assign students to teams based on either their GitHub id or their email
TODO: add other user stories, and maybe split this into multiple issues...
Discussion
Currently the Create Teams from CSV feature allows an instructor to upload
Proposed new design
In the new design, instructors have several options for creating teams:
(1) Instructors can create the teams directly in the GitHub user interface associated with creating teams for an org. Then they can run the "Refresh GitHub Teams" job which will import those teams into the link.
(2) They can manually create a GitHub Team in the linker; that team will be automatically created in GitHub as well.
(3) They can create multiple teams at a time by specifying only the name of the team, one per line, in a CSV file (not really CSV since there's only one column). These will be created in both the linker in GitHub
(4) They can upload a CSV with one line per student. Each line has on it, github id (which could be blank), team name, and student email.
If the github id is blank, the student is added to the team in the linker ONLY, and not on GitHub.
Otherwise the student is added to the team, and if the team doesn't already exist, it is created.
For students that doen't have a github id, we should add functionality to the hook where the student's github id is updated, to also add them to any teams with which they are associated.
User Story
Discussion
Currently the Create Teams from CSV feature allows an instructor to upload
Proposed new design
In the new design, instructors have several options for creating teams:
(1) Instructors can create the teams directly in the GitHub user interface associated with creating teams for an org. Then they can run the "Refresh GitHub Teams" job which will import those teams into the link.
(2) They can manually create a GitHub Team in the linker; that team will be automatically created in GitHub as well.
(3) They can create multiple teams at a time by specifying only the name of the team, one per line, in a CSV file (not really CSV since there's only one column). These will be created in both the linker in GitHub
(4) They can upload a CSV with one line per student. Each line has on it, github id (which could be blank), team name, and student email.
If the github id is blank, the student is added to the team in the linker ONLY, and not on GitHub.
Otherwise the student is added to the team, and if the team doesn't already exist, it is created.
For students that doen't have a github id, we should add functionality to the hook where the student's github id is updated, to also add them to any teams with which they are associated.