Beispiel #1
0
 /**
  * Create a new course, fetch new enrolments, assert that the new enrolments
  * match the unenroled test users.  Tests db_fetch_new_enrolments().
  */
 public function test_fetch_new_enrolments()
 {
     // Fetch new enrolments for the dummy course.
     $initialenrolments = dc_fetch_new_enrolments($this->dummycourse->id);
     // Expected: no new enrolments.
     $this->assertEquals(0, count($initialenrolments));
     // Create three dummy users.
     $this->user = $this->getDataGenerator()->create_user(array('email' => '*****@*****.**', 'username' => 'dctestuser'));
     $this->user2 = $this->getDataGenerator()->create_user(array('email' => '*****@*****.**', 'username' => 'dctestuser2'));
     $this->user3 = $this->getDataGenerator()->create_user(array('email' => '*****@*****.**', 'username' => 'dctestuser3'));
     // Fetch new enrolments for the dummy course.
     $subsequentenrolments = dc_fetch_new_enrolments($this->dummycourse->id);
     // Expected: 3 new enrolments.
     $this->assertEquals(3, count($subsequentenrolments));
 }
Beispiel #2
0
/**
 * Purpose: Enrol all users who are not currently enroled as students
 *          in the courses defined as default courses
 *
 * @author Andrew Zoltay
 * date    2012-06-20
 * @global object $DB Moodle database object
 * @return none
 */
function dc_enrol_default_courses()
{
    global $DB;
    // Initialize enrolment results object.
    $results = new stdClass();
    // Get the Student Role ID.
    $studentroleid = $DB->get_field('role', 'id', array('archetype' => 'student'), MUST_EXIST);
    // Get courseids for default courses.
    $defaultcourses = explode(',', get_config('local_defaultcourses', 'courseids'));
    // Make sure there are some default courses to enrol users.
    if ($defaultcourses) {
        // Enroling all users in default courses...
        foreach ($defaultcourses as $defaultcourse) {
            $course = $DB->get_record('course', array('id' => (int) $defaultcourse), '*', MUST_EXIST);
            mtrace("Enrol users in default course: {$course->fullname}");
            // Get the enrolment id for the course.
            $enrolid = $DB->get_field_select('enrol', 'id', 'courseid = ? AND roleid = ? AND enrol =?', array($course->id, $studentroleid, 'manual'));
            // Check to make sure enrolment method exists before trying to enrol users.
            if ($enrolid) {
                $defaultenrolments = dc_fetch_new_enrolments($course->id);
                if (!$defaultenrolments) {
                    mtrace("No users found to be enroled in default course: {$course->fullname}");
                } else {
                    $results = dc_enrol_users($defaultenrolments, $course, $enrolid, $studentroleid);
                }
            } else {
                // Write error to CRON log.
                mtrace("Manual enrolment method is missing for default course: {$course->fullname}");
            }
        }
        $tmp = (array) $results;
        // Cast as array so empty() is meaningful...
        if (!empty($tmp)) {
            mtrace("{$results->successcount} students were successfully enroled in default courses");
            mtrace("{$results->failurecount} students failed to be enroled in default courses");
        }
    } else {
        // No default courses defined.
        mtrace("No default courses have been defined - define defalut courses through " . "Site Administration block -> Plugins -> Local Plugins -> Default Courses");
    }
}