From 7e4648a1602e4939f4796e57b252c0e16795966f Mon Sep 17 00:00:00 2001 From: nfreear Date: Fri, 23 Feb 2007 17:48:05 +0000 Subject: [PATCH] Fixes MDL-8638 "Can't move groups between groupings" --- group/group.php | 48 ++++++++++++++++++++++++++++++++++++----- group/index.php | 9 +++++--- group/lib/modulelib.php | 5 +---- lang/en_utf8/group.php | 4 +--- 4 files changed, 51 insertions(+), 15 deletions(-) diff --git a/group/group.php b/group/group.php index 06bb18f53f..a2bf058d8b 100644 --- a/group/group.php +++ b/group/group.php @@ -18,6 +18,7 @@ $err = array(); $courseid = required_param('courseid', PARAM_INT); $groupingid = optional_param('grouping', false, PARAM_INT); +$newgrouping= optional_param('newgrouping', false, PARAM_INT); $groupid = optional_param('group', false, PARAM_INT); $groupsettings->name = optional_param('name', PARAM_ALPHANUM); @@ -66,13 +67,20 @@ if ($success) { $err['name'] = get_string('missingname'); } elseif (isset($frm->update)) { - if (GROUP_NOT_IN_GROUPING == $groupingid) { - print_error('errornotingrouping', 'group', groups_home_url($courseid), get_string('notingrouping', 'group')); - } - if (! $groupid) { + if (! $groupid) { //OK, new group. + if (GROUP_NOT_IN_GROUPING == $groupingid) { + print_error('errornotingrouping', 'group', groups_home_url($courseid), get_string('notingrouping', 'group')); + } $success = (bool)$groupid = groups_create_group($courseid); //$groupsettings); $success = groups_add_group_to_grouping($groupid, $groupingid); } + elseif ($groupingid != $newgrouping) { //OK, move group. + if (GROUP_NOT_IN_GROUPING == $newgrouping) { + print_error('errornotingrouping', 'group', groups_home_url($courseid), get_string('notingrouping', 'group')); + } + $success = $success && groups_remove_group_from_grouping($groupid, $groupingid); + $success = $success && groups_add_group_to_grouping($groupid, $newgrouping); + } if ($success) { //require_once($CFG->dirroot.'/lib/uploadlib.php'); @@ -193,8 +201,38 @@ if ($success) { ?> 

+

+ +

diff --git a/group/index.php b/group/index.php index ec806d379b..58cb20fd3e 100644 --- a/group/index.php +++ b/group/index.php @@ -120,7 +120,7 @@ if ($success) { } redirect(groups_group_edit_url($courseid, null, $groupingid, false)); break; - case 'addgroupstogroupingsform': + case 'addgroupstogroupingform': break; case 'updategroups': //Currently reloading. break; @@ -176,7 +176,10 @@ if ($success) { 0) { + //NOTE, only show the pseudo-grouping if it has groups. + $groupingids[] = GROUP_NOT_IN_GROUPING; + } if ($groupingids) { // Put the groupings into a hash and sort them @@ -248,7 +251,7 @@ if ($success) {

-

+

diff --git a/group/lib/modulelib.php b/group/lib/modulelib.php index 730337f49c..98b692e466 100644 --- a/group/lib/modulelib.php +++ b/group/lib/modulelib.php @@ -157,7 +157,7 @@ function groups_m_get_selected_group($cmid, $permissiontype, $userid) { function groups_m_get_groups_for_user($cm, $userid) { //echo 'User'; print_object($cm); $groupingid = groups_get_grouping_for_coursemodule($cm); - if (!$groupingid) { + if (!$groupingid || GROUP_NOT_IN_GROUPING == $groupingid) { return false; } if (!isset($cm->course) || !groupmode($cm->course, $cm)) { @@ -166,9 +166,6 @@ function groups_m_get_groups_for_user($cm, $userid) { elseif (GROUP_ANY_GROUPING == $groupingid) { return groups_get_groups_for_user($userid, $cm->course); } - elseif (GROUP_NOT_IN_GROUPING == $groupingid) { - return groups_get_groups_not_in_any_grouping($cm->course); - } return groups_get_groups_for_user_in_grouping($userid, $groupingid); } diff --git a/lang/en_utf8/group.php b/lang/en_utf8/group.php index 243934ac2e..80517a80e4 100644 --- a/lang/en_utf8/group.php +++ b/lang/en_utf8/group.php @@ -48,8 +48,7 @@ $string['editgroupsettings'] = 'Edit group settings'; $string['deleteselectedgroup'] = 'Delete selected group'; $string['removegroupfromselectedgrouping'] = 'Remove group from grouping'; //'selected' $string['creategroupinselectedgrouping'] = 'Create group in grouping'; -$string['addexistinggroupstogrouping'] = 'Add existing groups to grouping'; -$string['addgroupstogrouping'] = 'Add groups to grouping'; +$string['addgroupstogrouping'] = 'Add group to grouping'; //'groupS' $string['removeselectedusers'] = 'Remove selected users'; $string['adduserstogroup'] = 'Add/remove users'; //'from group' @@ -79,7 +78,6 @@ $string['newpicture'] = 'New picture'; $string['defaultgroupdescription'] = 'Default group description'; $string['displaygrouping'] = 'Display grouping'; -$string['addgroupstogrouping'] = 'Add groups to grouping'; $string['showusersalreadyingroup'] = 'Show users already in a group in the grouping'; $string['save'] = 'Save'; -- 2.39.5