mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
groups assignment now works with assigned roles instead of user_students and user_teachers
This commit is contained in:
parent
bc202f4390
commit
3fde1a3d2f
2 changed files with 30 additions and 21 deletions
|
@ -1,6 +1,12 @@
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
<!-- Begin
|
<!-- Begin
|
||||||
<?php
|
<?php
|
||||||
|
$roles = get_records('role');
|
||||||
|
$roleoptions = array();
|
||||||
|
foreach ($roles as $rolex) {
|
||||||
|
$roleoptions[$rolex->id] = $rolex->name;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($listmembers as $groupid => $listmember) {
|
foreach ($listmembers as $groupid => $listmember) {
|
||||||
echo "group$groupid = new Object();\n";
|
echo "group$groupid = new Object();\n";
|
||||||
$useridstring = "group$groupid.userid = new Array(";
|
$useridstring = "group$groupid.userid = new Array(";
|
||||||
|
@ -87,6 +93,7 @@ function groupWindow(selectgroup) {
|
||||||
<input type="hidden" name="id" value="<?php p($course->id) ?>" />
|
<input type="hidden" name="id" value="<?php p($course->id) ?>" />
|
||||||
<input type="hidden" name="groupid" value="<?php p($selectedgroup) ?>" />
|
<input type="hidden" name="groupid" value="<?php p($selectedgroup) ?>" />
|
||||||
<input type="hidden" name="sesskey" value="<?php p($sesskey) ?>">
|
<input type="hidden" name="sesskey" value="<?php p($sesskey) ?>">
|
||||||
|
<input type="hidden" name="roleid" value="<?php p($roleid) ?>">
|
||||||
|
|
||||||
<select name="nonmembers[]" size="15" multiple="multiple">
|
<select name="nonmembers[]" size="15" multiple="multiple">
|
||||||
<?php
|
<?php
|
||||||
|
@ -116,11 +123,17 @@ function groupWindow(selectgroup) {
|
||||||
onclick="return userWindow(document.form1['nonmembers[]']);" />
|
onclick="return userWindow(document.form1['nonmembers[]']);" />
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
<form name="rolesform1" action="groups.php" method="get">
|
||||||
|
<input type="hidden" name="id" value="<?php echo $courseid ?>">
|
||||||
|
<div align="center"><?php echo get_string('selectrole') ?>:
|
||||||
|
<?php choose_from_menu ($roleoptions, 'roleid', $roleid, 'choose', $script='rolesform1.submit()') ?>
|
||||||
|
</div></form>
|
||||||
</td>
|
</td>
|
||||||
<td class="generalboxcontent"><p>
|
<td class="generalboxcontent"><p>
|
||||||
<form name="form2" id="form2" method="post" action="groups.php">
|
<form name="form2" id="form2" method="post" action="groups.php">
|
||||||
<input type="hidden" name="id" value="<?php p($course->id) ?>" />
|
<input type="hidden" name="id" value="<?php p($course->id) ?>" />
|
||||||
<input type="hidden" name="sesskey" value="<?php p($sesskey) ?>">
|
<input type="hidden" name="sesskey" value="<?php p($sesskey) ?>">
|
||||||
|
<input type="hidden" name="roleid" value="<?php p($roleid) ?>">
|
||||||
<select name="groups" size="15" onChange="updateMembers(this)">
|
<select name="groups" size="15" onChange="updateMembers(this)">
|
||||||
<?php
|
<?php
|
||||||
if (!empty($listgroups)) {
|
if (!empty($listgroups)) {
|
||||||
|
@ -155,6 +168,7 @@ function groupWindow(selectgroup) {
|
||||||
<input type="hidden" name="id" value="<?php p($course->id) ?>" />
|
<input type="hidden" name="id" value="<?php p($course->id) ?>" />
|
||||||
<input type="hidden" name="groupid" value="<?php p($selectedgroup) ?>" />
|
<input type="hidden" name="groupid" value="<?php p($selectedgroup) ?>" />
|
||||||
<input type="hidden" name="sesskey" value="<?php p($sesskey) ?>">
|
<input type="hidden" name="sesskey" value="<?php p($sesskey) ?>">
|
||||||
|
<input type="hidden" name="roleid" value="<?php p($roleid) ?>">
|
||||||
<select name="members[]" size="15" multiple="multiple">
|
<select name="members[]" size="15" multiple="multiple">
|
||||||
<?php
|
<?php
|
||||||
if (!empty($members)) {
|
if (!empty($members)) {
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
|
|
||||||
$courseid = required_param('id', PARAM_INT); // Course id
|
$courseid = required_param('id', PARAM_INT); // Course id
|
||||||
$selectedgroup = optional_param('group', NULL, PARAM_INT); // Current group id
|
$selectedgroup = optional_param('group', NULL, PARAM_INT); // Current group id
|
||||||
|
$roleid = optional_param('roleid', 0, PARAM_INT); // Current group id
|
||||||
|
|
||||||
if (! $course = get_record('course', 'id', $courseid) ) {
|
if (! $course = get_record('course', 'id', $courseid) ) {
|
||||||
error("That's an invalid course id");
|
error("That's an invalid course id");
|
||||||
|
@ -170,23 +171,12 @@
|
||||||
|
|
||||||
/// First, get everyone into the nonmembers array
|
/// First, get everyone into the nonmembers array
|
||||||
|
|
||||||
if ($students = get_course_students($course->id)) {
|
if ($contextusers = get_role_users($roleid, $context)) {
|
||||||
foreach ($students as $student) {
|
foreach ($contextusers as $contextuser) {
|
||||||
$nonmembers[$student->id] = fullname($student, true);
|
$nonmembers[$contextuser->id] = fullname($contextuser, true);
|
||||||
}
|
}
|
||||||
unset($students);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($teachers = get_course_teachers($course->id)) {
|
|
||||||
foreach ($teachers as $teacher) {
|
|
||||||
$prefix = '- ';
|
|
||||||
if (isteacheredit($course->id, $teacher->id)) {
|
|
||||||
$prefix = '# ';
|
|
||||||
}
|
|
||||||
$nonmembers[$teacher->id] = $prefix.fullname($teacher, true);
|
|
||||||
}
|
|
||||||
unset($teachers);
|
|
||||||
}
|
}
|
||||||
|
unset($contextusers);
|
||||||
|
|
||||||
/// Pull out all the members into little arrays
|
/// Pull out all the members into little arrays
|
||||||
|
|
||||||
|
@ -195,13 +185,18 @@
|
||||||
$countusers = 0;
|
$countusers = 0;
|
||||||
$listmembers[$group->id] = array();
|
$listmembers[$group->id] = array();
|
||||||
if ($groupusers = get_group_users($group->id)) {
|
if ($groupusers = get_group_users($group->id)) {
|
||||||
foreach ($groupusers as $groupuser) {
|
foreach ($groupusers as $key=>$groupuser) {
|
||||||
|
if (!array_key_exists($groupuser->id, $nonmembers)) {
|
||||||
|
// group member with another role
|
||||||
|
unset($groupusers[$key]);
|
||||||
|
} else {
|
||||||
$listmembers[$group->id][$groupuser->id] = $nonmembers[$groupuser->id];
|
$listmembers[$group->id][$groupuser->id] = $nonmembers[$groupuser->id];
|
||||||
//we do not remove people from $nonmembers, everyone is displayed
|
//we do not remove people from $nonmembers, everyone is displayed
|
||||||
//this is to enable people to be registered in multiple groups
|
//this is to enable people to be registered in multiple groups
|
||||||
//unset($nonmembers[$groupuser->id]);
|
//unset($nonmembers[$groupuser->id]);
|
||||||
$countusers++;
|
$countusers++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
natcasesort($listmembers[$group->id]);
|
natcasesort($listmembers[$group->id]);
|
||||||
}
|
}
|
||||||
$listgroups[$group->id] = $group->name." ($countusers)";
|
$listgroups[$group->id] = $group->name." ($countusers)";
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue