Exemplo n.º 1
0
function cegep_dawson_get_create_course_buttons()
{
    global $CFG, $USER;
    $items = array();
    $previous_term_str = '';
    $courseterms = array();
    $enrolments = cegep_local_get_teacher_enrolments($USER->idnumber, cegep_local_current_term());
    foreach ($enrolments as $enrolment) {
        // Skip already displayed courses
        if (in_array($enrolment['coursecode'] . $enrolment['term'], $courseterms)) {
            continue;
        }
        // Check if course title is empty
        if (!empty($enrolment['coursetitle'])) {
            $coursetitle = $enrolment['coursetitle'];
        } else {
            $coursetitle = get_string('cousetitlemissing', 'block_cegep');
        }
        // Display term string
        $current_term_str = cegep_local_term_to_string($enrolment['term']);
        if ($current_term_str != $previous_term_str) {
            $items[] = '<div style="font-weight: bold; font-size: 1.2em;">' . $current_term_str . '</div>';
        }
        $previous_term_str = $current_term_str;
        $items[] = '<form action="' . $CFG->wwwroot . '/blocks/cegep/block_cegep_createcourse.php" method="post" class="form_create">' . '<div class="coursenumber create_button">' . '<input type="hidden" name="coursecode" value="' . $enrolment['coursecode'] . '" />' . '<input type="hidden" name="term" value="' . $enrolment['term'] . '" />' . '<input type="submit" value="' . get_string('create', 'block_cegep') . '" name="submit" style="margin-right: 5px;" />' . $enrolment['coursecode'] . '</div><div class="coursetitle">' . $coursetitle . '</div></form>';
        array_push($courseterms, $enrolment['coursecode'] . $enrolment['term']);
    }
    if (count($enrolments) > 0) {
        $items[] = '<li><a target="_blank" href="' . $CFG->wwwroot . '/help/missing.course.php">Can\'t find your course?</a></li>';
    }
    return $items;
}
 function validation($data, $files)
 {
     global $DB, $USER;
     $errors = parent::validation($data, $files);
     $allowed = FALSE;
     // Admins and teachers can create courses
     if (is_siteadmin($USER)) {
         $allowed = TRUE;
     } else {
         // Check if the current user is a teacher enrolled in this course
         $enrolments = cegep_local_get_teacher_enrolments($USER->idnumber, cegep_local_current_term());
         foreach ($enrolments as $enrolment) {
             if ($enrolment['coursecode'] == $data['coursecode']) {
                 $allowed = TRUE;
                 break;
             }
         }
     }
     if (!$allowed) {
         $errors['_coursecode'] = get_string('errormustbeteachercourse', 'block_cegep');
     }
     return $errors;
 }
Exemplo n.º 3
0
function cegep_local_get_coursegroups($course_idnumber, $teacher_idnumber = '')
{
    global $CFG, $sisdb;
    $coursecode = substr($course_idnumber, 0, strpos($course_idnumber, '_'));
    if (empty($coursecode)) {
        $coursecode = $course_idnumber;
    }
    $term = cegep_local_current_term();
    $select = "SELECT * FROM `{$CFG->sisdb_name}`.`coursegroup` WHERE `coursecode` = '{$coursecode}' AND `term` >= {$term};";
    $coursegroups_rs = $sisdb->Execute($select);
    if (!$coursegroups_rs) {
        trigger_error($enroldb->ErrorMsg() . ' STATEMENT: ' . $select, E_USER_ERROR);
        return false;
    }
    $coursegroups = array();
    $teacher_enrolments = array();
    if (!empty($teacher_idnumber)) {
        $teacher_enrolments = cegep_local_get_teacher_enrolments($teacher_idnumber, $term);
    }
    while (!$coursegroups_rs->EOF) {
        $coursegroup = array();
        $coursegroup['id'] = $coursegroups_rs->fields['id'];
        $coursegroup['coursecode'] = $coursegroups_rs->fields['coursecode'];
        $coursegroup['group'] = $coursegroups_rs->fields['group'];
        $coursegroup['term'] = $coursegroups_rs->fields['term'];
        // Count student enrolments in SIS
        $select = "SELECT COUNT(`username`) AS numberofstudents FROM `{$CFG->sisdb_name}`.`student_enrolment` WHERE coursegroup_id = {$coursegroup['id']};";
        $coursegroup['numberofstudents'] = $sisdb->Execute($select)->fields['numberofstudents'];
        // If teacher_idnumber is specified, return only coursegroups/sections in which that teacher is enrolled in SIS
        if (!empty($teacher_idnumber)) {
            foreach ($teacher_enrolments as $teacher_enrolment) {
                if ($teacher_enrolment['coursecode'] === $coursegroup['coursecode'] && $teacher_enrolment['coursegroup'] === $coursegroup['group']) {
                    array_push($coursegroups, $coursegroup);
                    break;
                }
            }
        } else {
            array_push($coursegroups, $coursegroup);
        }
        $coursegroups_rs->MoveNext();
    }
    return $coursegroups;
}