From 7b511b00f3e25fd758a52c4d8153d54f535fd045 Mon Sep 17 00:00:00 2001 From: John Hoopes <john.hoopes@wisc.edu> Date: Tue, 12 Aug 2014 14:36:10 +0000 Subject: [PATCH] updating course_overview_uwmoodle for filtering internal courses from the external ones --- locallib.php | 53 +++++++++++++++++++++------------------------------- version.php | 2 +- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/locallib.php b/locallib.php index a27fd73..921042d 100644 --- a/locallib.php +++ b/locallib.php @@ -103,7 +103,7 @@ function block_course_overview_uwmoodle_get_child_shortnames($courseid) { * @return array list of sorted courses grouped by term. */ function block_course_overview_uwmoodle_get_sorted_courses() { - global $USER, $CFG; + global $USER, $CFG, $DB; $courses = enrol_get_my_courses(null, 'fullname', 0); $site = get_site(); @@ -120,10 +120,26 @@ function block_course_overview_uwmoodle_get_sorted_courses() { } } + // Find the termcode for each course + if (!empty($courses)) { + $courseids = array(); + foreach ($courses as $course) { + $courseids[] = $course->id; + } + list ($insql, $inparams) = $DB->get_in_or_equal($courseids); + $select = "enrol='wisc' AND courseid $insql"; + $enrols = $DB->get_records_select('enrol', $select, $inparams, '', 'id,courseid,customchar1'); + foreach ($enrols as $enrol) { + if (empty($courses[$enrol->courseid]->term) || $courses[$enrol->courseid]->term < $enrol->customchar1) { + $courses[$enrol->courseid]->term = $enrol->customchar1; + } + } + } + // get external courses require_once($CFG->dirroot . '/enrol/wisc/lib/externalcourses/external_user_courses.php'); $externalcourses = new external_user_courses(); - $ecourses = $externalcourses->get_user_courses($USER->email); + $ecourses = $externalcourses->get_user_courses($USER->email, $courses); $courses = array_merge($courses, $ecourses); @@ -139,38 +155,11 @@ function block_course_overview_uwmoodle_get_sorted_courses() { function block_course_overview_uwmoodle_group_courses_by_term($courses) { global $DB; - // Find the termcodes for each course - $courseterms = array(); - if (!empty($courses)) { - $courseids = array(); - foreach ($courses as $course) { - if(get_class($course) !== 'external_course') { // skip external courses as we'll add those in after local courses - $courseids[] = $course->id; - }else{ - // add external courses directly to the $courseterms array as we already have the term - // also skip external courses that have no term to be added to "other" term later - if(!empty($course->term)){ - $courseterms[$course->id][$course->term] = true; - } - } - } - if(!empty($courseids)){ - list ($insql, $inparams) = $DB->get_in_or_equal($courseids); - $select = "enrol='wisc' AND courseid $insql"; - $enrols = $DB->get_records_select('enrol', $select, $inparams, '', 'id,courseid,customchar1'); - foreach ($enrols as $enrol) { - $courseterms[$enrol->courseid][$enrol->customchar1] = true; - } - } - } - - // Sort the courses by termcode. Note that one course can be in multiple terms. + // Organize courses into terms, maintaining existing sorting inside each term $terms = array(); foreach ($courses as $course) { - if (!empty($courseterms[$course->id])) { - foreach ($courseterms[$course->id] as $termcode => $unused) { - $terms[$termcode][$course->id] = $course; - } + if (!empty($course->term)) { + $terms[$course->term][$course->id] = $course; } else { $terms[block_course_overview_uwmoodle::TERM_OTHER][$course->id] = $course; } diff --git a/version.php b/version.php index 813a01d..dbd60e1 100644 --- a/version.php +++ b/version.php @@ -18,7 +18,7 @@ defined('MOODLE_INTERNAL') || die(); $plugin->component = 'block_course_overview_uwmoodle'; -$plugin->version = 2014080700; +$plugin->version = 2014081200; $plugin->release = '2.0'; $plugin->requires = 2012120300; $plugin->maturity = MATURITY_STABLE; -- GitLab