Company reports for student boss - refs BT#9431

1.10.x
Imanol Losada 11 years ago
parent fc8df53980
commit 0b77b663fe
  1. 89
      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,44 +190,45 @@ 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()) {
} if ($sessionId == -1) {
$userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
$sessionIdList = []; 'admin',
if ($sessionId == -1) { null
$userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus( );
'admin', $userIdList = array_column($userIdList, 'user_id');
null $sessionList = SessionManager::get_sessions_list();
); $sessionIdList = array_column($sessionList, 'id');
$userIdList = array_column($userIdList, 'user_id');
$sessionList = SessionManager::get_sessions_list(); $courseCodeList = array();
$sessionIdList = array_column($sessionList, 'id'); foreach ($sessionList as $session) {
$courses = SessionManager::get_course_list_by_session_id($session['id']);
$courseCodeList = array(); $courseCodeList = array_merge($courseCodeList, array_column($courses, 'code'));
foreach ($sessionList as $session) { }
$courses = SessionManager::get_course_list_by_session_id($session['id']);
$courseCodeList = array_merge($courseCodeList, array_column($courses, 'code'));
} }
$searchByGroups = true;
} }
$groups = GroupPortalManager::get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_ADMIN); if ($searchByGroups) {
$groupsId = array_keys($groups); $groups = GroupPortalManager::get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_ADMIN);
$groupsId = array_keys($groups);
if (is_array($groupsId)) {
foreach ($groupsId as $groupId) {
$groupUsers = GroupPortalManager::get_users_by_group($groupId);
if (!is_array($groupUsers)) { if (is_array($groupsId)) {
continue; foreach ($groupsId as $groupId) {
} $groupUsers = GroupPortalManager::get_users_by_group($groupId);
foreach ($groupUsers as $memberId => $member) { if (!is_array($groupUsers)) {
if ($member['user_id'] == $userId ) {
continue; continue;
} }
$userIdList[] = intval($member['user_id']); foreach ($groupUsers as $memberId => $member) {
if ($member['user_id'] == $userId ) {
continue;
}
$userIdList[] = intval($member['user_id']);
}
} }
} }
} }
@ -234,6 +237,32 @@ switch ($action) {
$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