Company reports for student boss - refs BT#9431

1.10.x
Imanol Losada 11 years ago
parent fc8df53980
commit 0b77b663fe
  1. 39
      main/inc/ajax/model.ajax.php

@ -151,6 +151,8 @@ switch ($action) {
$courseCodeList = array(); $courseCodeList = array();
$userIdList = array(); $userIdList = array();
$sessionIdList = [];
$searchByGroups = false;
if (api_is_drh()) { if (api_is_drh()) {
if (api_drh_can_access_all_session_content()) { if (api_drh_can_access_all_session_content()) {
$userList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus( $userList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
@ -188,11 +190,8 @@ switch ($action) {
exit; exit;
} }
} elseif (api_is_student_boss()) { } elseif (api_is_student_boss()) {
$users = UserManager::getUsersFollowedByStudentBoss($userId); $searchByGroups = true;
$userIdList = array_keys($users); } elseif (api_is_platform_admin()) {
}
$sessionIdList = [];
if ($sessionId == -1) { if ($sessionId == -1) {
$userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus( $userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'admin', 'admin',
@ -208,7 +207,10 @@ switch ($action) {
$courseCodeList = array_merge($courseCodeList, array_column($courses, 'code')); $courseCodeList = array_merge($courseCodeList, array_column($courses, 'code'));
} }
} }
$searchByGroups = true;
}
if ($searchByGroups) {
$groups = GroupPortalManager::get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_ADMIN); $groups = GroupPortalManager::get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_ADMIN);
$groupsId = array_keys($groups); $groupsId = array_keys($groups);
@ -229,11 +231,38 @@ switch ($action) {
} }
} }
} }
}
if (is_array($userIdList)) { if (is_array($userIdList)) {
$userIdList = array_unique($userIdList); $userIdList = array_unique($userIdList);
} }
if (api_is_student_boss()) {
$userCourses = [];
foreach ($userIdList as $userId) {
$userCourses = array_merge(
$userCourses,
CourseManager::get_courses_list_by_user_id($userId, true)
);
$userSessions = SessionManager::getSessionsFollowedByUser($userId);
$sessionIdList = array_merge(
$sessionIdList,
array_column($userSessions, 'id')
);
}
$courseCodeList = array_column($userCourses, 'code');
}
if (!empty($courseCodeList)) {
$courseCodeList = array_unique($courseCodeList);
}
if (!empty($sessionIdList)) {
$sessionIdList = array_unique($sessionIdList);
}
if ($action == 'get_user_course_report') { if ($action == 'get_user_course_report') {
$count = CourseManager::get_count_user_list_from_course_code( $count = CourseManager::get_count_user_list_from_course_code(
false, false,

Loading…
Cancel
Save