----Original Message----
From: S.Marshall
Sent: 14 November 2006 13:00
To: J.White; 'Martin Dougiamas'; 'skodak@moodle.org'; 'stronk7@moodle.org'
Cc: N.D.Freear
Subject: RE: Moodle groups
> exposed as groups not as roles. A teacher doesn't want to
> have to create a new instance of a forum say for each group
> and create a role for people who can see each forum and then
> assign students to the right roles (is this what you were
> thinking of, Sam, or am I missing something obvious?). If
No that's not what I was thinking of. My opinion is just that the table mdl_groups_members should be got rid of, in favour of using mdl_role_assignments (which stores the information about who's on what course etc., so why not who's on what group). Groups would then become 'contexts' for the role system.
In this case group assignment could reuse the same 'role assignment' screen used for courses and other things. So you'd pick a group, pick a role type from those that apply to groups (maybe just 'group member', maybe also 'group leader'), and select people to assign to it. It would be the exact same interface as for assigning students to a course and would benefit from any improvements to that interface. That's the reason for unifying them.
This wouldn't imply any change to the way groups work in modules.
It might imply some changes to permissions (that's where the multiple roles in a group come in) but doesn't necessarily have to. You could keep the exact same group system as now, with only a single role ('Group member') applicable at a group level. The only change would be to the interface for assigning people to groups as this could entirely reuse (or at least extend) the standard assigning-role interface which is already written, thus avoiding any concerns about JavaScript.
There might be some need for enhancements to that interface so it can support groups in a quality manner, but I think it should be possible to fit it within the same code.
So basically it's just:
a) I dislike having two different mechanisms (db tables and UI) that do the exact same thing [assign people to thingies]. Any change to the group system also offers an opportunity to fix that.
b) At some future date it would be possible to grant people different roles within groups. This might potentially be useful in things like role-playing exercises (teacher assigns students to groups of five, one of whom is a dwarven cleric of Thor^W^W^W^W chair of a UN committee, while the others are committee members, they might have different capabilities in some custom module for this activity). However this is a bit complex and there's an issue of how it overlaps with existing roles such as our tutor role, where having a course role automatically grants you a role in the group too. So I think objective (a) is more important in the near term and we should just have a single 'Group member' role (system-created and hidden for the time being, perhaps).
--sam
Some comments: