]> git.mjollnir.org Git - moodle.git/commitdiff
groups assignment now works with assigned roles instead of user_students and user_tea...
authorskodak <skodak>
Tue, 12 Sep 2006 20:55:58 +0000 (20:55 +0000)
committerskodak <skodak>
Tue, 12 Sep 2006 20:55:58 +0000 (20:55 +0000)
course/groups-edit.html
course/groups.php

index 82e075055bb6403f7ce81041d6f2eb4b94ad8b8f..c3356774670ff988a9a553c814f9ffed979c46c2 100755 (executable)
@@ -1,6 +1,12 @@
 <script type="text/javascript">
 <!-- Begin
 <?php 
+    $roles = get_records('role');
+    $roleoptions = array();
+    foreach ($roles as $rolex) {
+        $roleoptions[$rolex->id] = $rolex->name;
+    }
+
     foreach ($listmembers as $groupid => $listmember) {
         echo "group$groupid = new Object();\n";
         $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="groupid" value="<?php p($selectedgroup) ?>" />
           <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">
             <?php 
@@ -116,11 +123,17 @@ function groupWindow(selectgroup) {
                    onclick="return userWindow(document.form1['nonmembers[]']);" />
           </p>
         </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 class="generalboxcontent"><p>
         <form name="form2" id="form2" method="post" action="groups.php">
           <input type="hidden" name="id" value="<?php p($course->id) ?>" />
           <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)">
             <?php 
                 if (!empty($listgroups)) {
@@ -155,6 +168,7 @@ function groupWindow(selectgroup) {
           <input type="hidden" name="id" value="<?php p($course->id) ?>" />
           <input type="hidden" name="groupid" value="<?php p($selectedgroup) ?>" />
           <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">
             <?php 
                 if (!empty($members)) {
index b083dca59e8eca47d28d4627212e544228bb7cd8..0ab0dbca89ae534938a0428783adad4c97713036 100644 (file)
@@ -30,6 +30,7 @@
 
     $courseid      = required_param('id', PARAM_INT);           // Course 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) ) {
         error("That's an invalid course id");
 
 /// First, get everyone into the nonmembers array
 
-    if ($students = get_course_students($course->id)) {
-        foreach ($students as $student) {
-            $nonmembers[$student->id] = fullname($student, true);
+    if ($contextusers = get_role_users($roleid, $context)) {
+        foreach ($contextusers as $contextuser) {
+            $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
 
             $countusers = 0;
             $listmembers[$group->id] = array();
             if ($groupusers = get_group_users($group->id)) {
-                foreach ($groupusers as $groupuser) {
-                    $listmembers[$group->id][$groupuser->id] = $nonmembers[$groupuser->id];
-                    //we do not remove people from $nonmembers, everyone is displayed
-                    //this is to enable people to be registered in multiple groups
-                    //unset($nonmembers[$groupuser->id]);
-                    $countusers++;
+                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];
+                        //we do not remove people from $nonmembers, everyone is displayed
+                        //this is to enable people to be registered in multiple groups
+                        //unset($nonmembers[$groupuser->id]);
+                        $countusers++;
+                    }
                 }
                 natcasesort($listmembers[$group->id]);
             }