]> git.mjollnir.org Git - moodle.git/commitdiff
merged fix for MDL-9617, performance issues in calendar
authortoyomoyo <toyomoyo>
Fri, 4 May 2007 05:25:49 +0000 (05:25 +0000)
committertoyomoyo <toyomoyo>
Fri, 4 May 2007 05:25:49 +0000 (05:25 +0000)
calendar/lib.php
lib/datalib.php

index d0b223fd4fcbf7d675b9f842e108f22f94125f3e..8cfbbfb724bdf83a1be3128df7bb18a89ab1d251 100644 (file)
@@ -1236,30 +1236,12 @@ function calendar_get_default_courses($ignoreref = false) {
         }
     }
     
-    // find all course this student can view
-    if ($allcourses = get_my_courses($USER->id, 'visible DESC, sortorder ASC', '*', true)) {
-        foreach ($allcourses as $courseid => $acourse) {
-            if (!$context = get_context_instance(CONTEXT_COURSE, $courseid)) {
-                continue;
-            }
-            // let's try to see if there is any direct assignments on this context
-            // one can have multiple assignments
-            // just use anyone that has something, or else use empty string
-            // i am not even sure enrolment type is needed here, seems like only the array keys are needed
-            // just keeping this code for safety
-            if ($roleassign = get_records_sql("SELECT * FROM {$CFG->prefix}role_assignments
-                                               WHERE contextid = $context->id
-                                               AND userid = $USER->id")) {
-                foreach ($roleassign as $rid => $rs) {
-                    if (!empty($rs->enrol)) {                     
-                        $courses[$courseid] = $rs->enrol;
-                        break;       
-                    }
-                }
-            }
-        }  
+    if (isset($CFG->adminseesall)) {
+        return get_my_courses($USER->id, 'visible DESC', '*', $CFG->adminseesall);
+    }
+    else {
+        return get_my_courses($USER->id, 'visible DESC', '*', false);
     }
-    return $courses;
 }
 
 function calendar_preferences_button() {
index 534d9472a22c08171292c272dcc19b2b1df39869..90bd0c7bc073c050509b0b4a4d2281a810a05ecf 100644 (file)
@@ -820,7 +820,9 @@ ORDER BY $sort");
         }
     }
 
-    if (!empty($USER->id) && ($USER->id == $userid)) {
+    // MDL-9671, my courses should only get cached when '*' is chosen as the field, otherwise courses
+    // can not be displayed properly as cached courses might contain missing course name etc
+    if (!empty($USER->id) && ($USER->id == $userid) && $fields=='*') {
         $USER->mycourses[$doanything] = $mycourses;
     }