diff --git a/main/inc/ajax/course.ajax.php b/main/inc/ajax/course.ajax.php index 53743ddc8d..a659a9f0e1 100644 --- a/main/inc/ajax/course.ajax.php +++ b/main/inc/ajax/course.ajax.php @@ -116,6 +116,37 @@ switch ($action) { } } break; + case 'search_user_by_course': + if (api_is_platform_admin()) + { + $user = Database :: get_main_table(TABLE_MAIN_USER); + $session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); + + $course = api_get_course_info_by_id($_GET['course_id']); + + $sql = "SELECT u.user_id as id, u.username, u.lastname, u.firstname + FROM $user u + INNER JOIN $session_course_user r ON u.user_id = r.id_user + WHERE id_session = %d AND course_code = '%s' + AND (u.firstname LIKE '%s' OR u.username LIKE '%s' OR u.lastname LIKE '%s')"; + $needle = '%' . $_GET['q'] . '%'; + $sql_query = sprintf($sql, $_GET['session_id'], $course['code'], $needle, $needle, $needle); + + $result = Database::query($sql_query); + while ($user = Database::fetch_assoc($result)) + { + $data[] = array('id' => $user['id'], 'text' => $user['username'] ); + + } + if (!empty($data)) + { + echo json_encode($data); + } else + { + echo json_encode(array()); + } + } + break; default: echo ''; } diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index a1fb89bec8..b0dfb1ff42 100644 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -1018,7 +1018,7 @@ class SessionManager INNER JOIN $user u ON a.user_id = u.user_id INNER JOIN $course c ON a.course_code = c.code $where $order $limit"; - error_log($sql); + $result = Database::query(sprintf($sql, $sessionId, $courseId)); $clicks = Tracking::get_total_clicks_by_session(); diff --git a/main/mySpace/index.php b/main/mySpace/index.php index 6bf86da3eb..41487a65d5 100644 --- a/main/mySpace/index.php +++ b/main/mySpace/index.php @@ -603,7 +603,7 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst echo '

'; if ($is_platform_admin && $view == 'admin' && in_array($display, array('accessoverview','lpprogressoverview', 'progressoverview', 'exerciseprogress'))) { - // Create a filter by session + //Session Filter $sessionFilter = new FormValidator('session_filter', 'get', '', '', array('class'=> 'form-search'), false); $url = api_get_path(WEB_AJAX_PATH).'session.ajax.php?a=search_session'; $sessionList = array(); @@ -627,18 +627,17 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst }); }); '; - switch ($display) - { - case 'accessoverview': - case 'lpprogressoverview': + //Course filter + if (in_array($display, array('accessoverview', 'lpprogressoverview'))) + { $courseFilter = new FormValidator('course_filter', 'get', '', '', array('class'=> 'form-search'), false); $url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=search_course_by_session&session_id=' . $_GET['session_id']; $courseList = array(); $courseId = isset($_GET['course_id']) ? $_GET['course_id'] : null; if (!empty($courseId)) { $courseList = array(); - $sessionInfo = api_get_course_info_by_id($courseId); - $courseList[] = array('id' => $sessionInfo['id'], 'text' => $sessionInfo['name']); + $courseInfo = api_get_course_info_by_id($courseId); + $courseList[] = array('id' => $courseInfo['real_id'], 'text' => $courseInfo['name']); } $courseFilter->addElement('select_ajax', 'course_name', get_lang('SearchCourse'), null, array('url' => $url, 'defaults' => $courseList)); $courseListUrl = api_get_self(); @@ -655,9 +654,36 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst }); }); '; - break; - default: - break; + } + //Student Filter + if (in_array($display, array('accessoverview'))) + { + $studentFilter = new FormValidator('student_filter', 'get', '', '', array('class'=> 'form-search'), false); + $url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=search_user_by_course&session_id=' . $_GET['session_id'] . '&course_id=' . $_GET['course_id']; + $studentList = array(); + $studentId = isset($_GET['student_id']) ? $_GET['student_id'] : null; + if (!empty($studentId)) { + $studentList = array(); + $studentInfo = UserManager::get_user_info_by_id($studentId); + $studentList[] = array('id' => $studentInfo['id'], 'text' => $studentInfo['username']); + } + $studentFilter->addElement('select_ajax', 'student_name', get_lang('SearchStudent'), null, array('url' => $url, 'defaults' => $studentList)); + $courseListUrl = api_get_self(); + + echo '
'; + echo $studentFilter->return_form(); + echo '
'; + + echo ''; } } @@ -677,11 +703,12 @@ if ($is_platform_admin && in_array($view, array('admin')) && $display != 'yourst { Display::display_warning_message(get_lang('ChooseStudent')); } - } else + } else { Display::display_warning_message(get_lang('ChooseCourse')); } - } else { + } else + { Display::display_warning_message(get_lang('ChooseSession')); } } else if($display == 'lpprogressoverview') {