Open hjp22 opened 8 years ago
Assignments belong to groups, not to students. Without a database rewrite on a huge scale, we can't change that.
There are a few things we could do instead:
I agree that this isn't ideal behaviour. I think the correct answer is to not display assignments of groups that you have left. This is a medium amount of work, but not unrealistic.
Ok I think I have an approach I like for solving this one now.
There are a number of changes I will make these include: 1) Enable group membership to have a status (Active, Inactive, Deleted) I agree with James' thought above.
2) Groups will have a status either active, deleted instead of just an archived flag
3) Add an updated time to the database so we can work out when a user has been made inactive in a group
4) Only when a student revokes access to their data for the last teacher who manages a group to which the student is a member, they will be prompted with a dialog box to invite them to set their group membership status to inactive.
5) Students can become active in a group again by reentering a group code.
6) Students may need some way of declaring them selves as inactive once they have revoked access to a teacher probably in the my assignments page or account settings connections page
This is probably best explained with an example: S1 - Student 1 T1 - Teacher 1 T2 - Teacher 2 G1 - Group 1 owned by T1 with an additional manager of T2 G2 - Group 2 owned by T2
We are exposing a little bit more information about groups to students than we have in the past. i.e. they may not have fully realised they were joining a group when they used a 'group token'
Invariably, I will come up against interesting architectural problems with this along the way but I think its probably worth a try.
I will have to figure out a nice way to let users opt out later (if they opt to stay active in the group and change their mind).
Any thoughts before I start building @jsharkey13?
I like it. Points that we've mentioned in the office:
All current students who have previously revoked access to a teacher will have active groups so it is important that they should be able to deactivate them as you've suggested.
The students will probably be able to see the group names when deciding to deactivate, lets hope the teachers named their groups respectfully!
Describing what active and inactive means to the student could get a bit wordy.
Allowing the student to see and manage groups directly, depending on the use case might be easier (but in most cases add complexity?)
It's worth pointing out that teachers (who've attended CPDs) have been told that students won't see the name of the group. I think teachers will need to be told in advance (just in case).
Thanks @allydavies I can work around using the group names and just show group ids and the last assignment or something. Although it might be nicer for students and teachers alike if we expose the group names to both. Happy to work with you on scheduling comms before hand if we decide we want to do this. I will start building the other parts of this flow first.
Browser: Chrome
Connect with a teacher who has set an assignment (eg https://isaacphysics.org/account?authToken=NMU2Y2) 'Preworkshop Calculus' now appears in My Assignments. Revoke access to that teacher (My Account -> Teacher Connections -> Ally Davies revoke The assignment still appears in My Assignments.
Is this intended?
A student could sign up for a workshop, and then decide not to attend. In this scenario they would want to remove the assignment from their list, but at the moment there is no way (that I can see!) to remove it other than by completing it. Could there be an option to delete, or if we are worried that students will maliciously 'delete' their homework as an excuse not to do it, then perhaps to 'archive' it, where it moves to a list similar to the 'completed assignments' list.