]> git.mjollnir.org Git - moodle.git/commitdiff
Fixes MDL-8638 "Can't move groups between groupings"
authornfreear <nfreear>
Fri, 23 Feb 2007 17:48:05 +0000 (17:48 +0000)
committernfreear <nfreear>
Fri, 23 Feb 2007 17:48:05 +0000 (17:48 +0000)
group/group.php
group/index.php
group/lib/modulelib.php
lang/en_utf8/group.php

index 06bb18f53fabcb790963d5011319d96dddbcf595..a2bf058d8b7ebc31bd0a4c0f10cb76bf61aa45b4 100644 (file)
@@ -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) {
      ?>&nbsp;</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">&nbsp;</label>
index ec806d379b3eb9d30bd8185e2488f6c887a165c8..58cb20fd3ec7557d78a7f3a41a92aa361ddc6cd2 100644 (file)
@@ -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>
index 730337f49cd5484b61961928107f6ce042a80aa5..98b692e4667a2704c8e680f6bc8e1a5a3ffc2763 100644 (file)
@@ -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);
 } 
 
index 243934ac2e259eb1faa81e952cf5ba8a1af48922..80517a80e4aea13c3cc0d4d9d48911cbd9598d83 100644 (file)
@@ -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';