diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 4d1c5f439c..cd61b28d37 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -1752,6 +1752,7 @@ class CourseManager * @param integer $session_id * @param string $date_from * @param string $date_to + * @param boolean $includeInvitedUsers Whether include the invited users * @return array with user id */ public static function get_student_list_from_course_code( @@ -1759,7 +1760,8 @@ class CourseManager $with_session = false, $session_id = 0, $date_from = null, - $date_to = null + $date_to = null, + $includeInvitedUsers = true ) { $session_id = intval($session_id); $course_code = Database::escape_string($course_code); @@ -1768,8 +1770,14 @@ class CourseManager if ($session_id == 0) { // students directly subscribed to the course - $sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." - WHERE course_code = '$course_code' AND status = ".STUDENT; + $sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)." cu + INNER JOIN user u ON cu.user_id = u.user_id + WHERE course_code = '$course_code' AND cu.status = ".STUDENT; + + if (!$includeInvitedUsers) { + $sql .= " AND u.status != " . ROLE_INVITED; + } + $rs = Database::query($sql); while ($student = Database::fetch_array($rs)) { $students[$student['user_id']] = $student; @@ -1788,6 +1796,7 @@ class CourseManager $sql_query = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)." scu $joinSession + INNER JOIN $userTable u ON scu.id_user = u.user_id WHERE scu.course_code = '$course_code' AND scu.status <> 2"; if (!empty($date_from) && !empty($date_to)) { @@ -1800,6 +1809,10 @@ class CourseManager $sql_query .= ' AND scu.id_session = '.$session_id; } + if (!$includeInvitedUsers) { + $sql .= " AND u.status != " . ROLE_INVITED; + } + $rs = Database::query($sql_query); while($student = Database::fetch_array($rs)) { $students[$student['id_user']] = $student; diff --git a/main/tracking/exams.php b/main/tracking/exams.php index c3e510e6f4..f2105162d8 100755 --- a/main/tracking/exams.php +++ b/main/tracking/exams.php @@ -473,13 +473,20 @@ function processStudentList($filter_score, $global, $exercise, $courseInfo, $ses if (empty($sessionId)) { $students = CourseManager::get_student_list_from_course_code( $courseInfo['code'], + false, + 0, + null, + null, false ); } else { $students = CourseManager::get_student_list_from_course_code( $courseInfo['code'], true, - $sessionId + $sessionId, + null, + null, + false ); }