]> git.mjollnir.org Git - moodle.git/commitdiff
group/assign: fixed performance of assigning users to groups
authormartinlanghoff <martinlanghoff>
Wed, 19 Sep 2007 07:09:36 +0000 (07:09 +0000)
committermartinlanghoff <martinlanghoff>
Wed, 19 Sep 2007 07:09:36 +0000 (07:09 +0000)
- page would not display on a course with 600 users

group/assign.php
lib/deprecatedlib.php

index a56a4b318b7eb2c522a18da776f991394d5167c2..75b7fe0c6f352685e21fdff7366c8e5759b4db76 100644 (file)
@@ -72,6 +72,28 @@ if ($currentmembers) {
         $currentmembersoptions .= '<option value="'.$group->id.'.">'.format_string($group->name).'</option>';
         $currentmemberscount ++;
     }
+
+    // Get course managers so they can be hilited in the list
+    if ($managerroles = get_config('', 'coursemanager')) {
+        $coursemanagerroles = split(',', $managerroles);
+        foreach ($coursemanagerroles as $roleid) {
+            $role = get_record('role','id',$roleid);
+            $managers = get_role_users($roleid, $context, true, 'u.id', 'u.id ASC', true);
+        }
+    }
+    
+    if ($potentialmembers != false) {
+        // Put the groupings into a hash and sorts them
+        foreach ($potentialmembers as $user) {
+            if(!empty($managers[$user->id])) {
+                $nonmembers[$user->id] = '#'.$user->firstname.' '.$user->lastname;
+            }
+            else {
+                $nonmembers[$user->id] = $user->firstname.' '.$user->lastname;
+            }
+            $potentialmemberscount++;
+        }
+        natcasesort($nonmembers);
 } else {
     $currentmembersoptions .= '<option>&nbsp;</option>';
 }
index b2525140433717ac8eb7dfb2a60087014d79feb7..a7b9c8f803be28ed413e1edade0ccb5cc74092d3 100644 (file)
@@ -765,7 +765,7 @@ function get_course_teachers($courseid, $sort='t.authority ASC', $exceptions='')
  * @return object
  * @todo Finish documenting this function
  */
-function get_course_users($courseid, $sort='ul.timeaccess DESC', $exceptions='', $fields='') {
+function get_course_users($courseid, $sort='ul.timeaccess DESC', $exceptions='', $fields='u.*, ul.timeaccess as lastaccess') {
     global $CFG;
 
     $context = get_context_instance(CONTEXT_COURSE, $courseid);
@@ -790,7 +790,7 @@ function get_course_users($courseid, $sort='ul.timeaccess DESC', $exceptions='',
             }
         }
     }
-    return get_users_by_capability($context, 'moodle/course:view', 'u.*, ul.timeaccess as lastaccess', $sort, '','','',$exceptions, false);
+    return get_users_by_capability($context, 'moodle/course:view', $fields, $sort, '','','',$exceptions, false);
 
 }