From: nfreear <nfreear> Date: Fri, 23 Feb 2007 17:48:05 +0000 (+0000) Subject: Fixes MDL-8638 "Can't move groups between groupings" X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=7e4648a1602e4939f4796e57b252c0e16795966f;p=moodle.git Fixes MDL-8638 "Can't move groups between groupings" --- 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) { ?> </label></p> <p><?php upload_print_form_fragment(1, array('groupicon'), null,false,null,0,0,false); ?></p> <?php - } + } + + if ($groupid) { //OK, editing - option to move grouping. +?> + <p><label for="groupings"><?php print_string('addgroupstogrouping', 'group'); ?></label></p> + <select name="newgrouping" id="groupings" class="select"> +<?php + $groupingids = groups_get_groupings($courseid); + if (GROUP_NOT_IN_GROUPING == $groupingid) { + $groupingids[] = GROUP_NOT_IN_GROUPING; + } + if ($groupingids) { + // Put the groupings into a hash and sort them + foreach($groupingids as $id) { + $listgroupings[$id] = groups_get_grouping_displayname($id, $courseid); + } + natcasesort($listgroupings); + + // Print out the HTML + $count = 1; + foreach($listgroupings as $id => $name) { + $select = ''; + if ($groupingid == $id) { + $select = ' selected="selected"'; + } + echo "<option value=\"$id\"$select>$name</option>\n"; + $count++; + } + } ?> + </select> +<?php } //IF($groupid) ?> <p class="fitem"> <label for="id_submit"> </label> 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) { <?php $groupingids = groups_get_groupings($courseid); - $groupingids[] = GROUP_NOT_IN_GROUPING; + if (groups_count_groups_in_grouping(GROUP_NOT_IN_GROUPING, $courseid) > 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) { <?php } ?> <p><input type="submit" name="act_showcreategroupform" id="showcreategroupform" value="<?php print_string('creategroupinselectedgrouping', 'group'); ?>" /></p> <?php if ($shownotdone) { ?> - <p><input type="submit" disabled="disabled" name="act_addgroupstogroupingsform" id="showaddgroupstogroupingform" value="<?php print_string('addexistinggroupstogrouping', 'group'); ?>" /></p> + <p><input type="submit" disabled="disabled" name="act_addgroupstogroupingform" id="showaddgroupstogroupingform" value="<?php print_string('addgroupstogrouping', 'group'); ?>" /></p> <?php } ?> </td> <td> 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';