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();
$userIdList = array();
$sessionIdList = [];
$searchByGroups = false;
if (api_is_drh()) {
if (api_drh_can_access_all_session_content()) {
$userList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
@ -188,44 +190,45 @@ switch ($action) {
exit;
}
} elseif (api_is_student_boss()) {
$users = UserManager::getUsersFollowedByStudentBoss($userId);
$userIdList = array_keys($users);
}
$sessionIdList = [];
if ($sessionId == -1) {
$userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'admin',
null
);
$userIdList = array_column($userIdList, 'user_id');
$sessionList = SessionManager::get_sessions_list();
$sessionIdList = array_column($sessionList, 'id');
$courseCodeList = array();
foreach ($sessionList as $session) {
$courses = SessionManager::get_course_list_by_session_id($session['id']);
$courseCodeList = array_merge($courseCodeList, array_column($courses, 'code'));
$searchByGroups = true;
} elseif (api_is_platform_admin()) {
if ($sessionId == -1) {
$userIdList = SessionManager::getAllUsersFromCoursesFromAllSessionFromStatus(
'admin',
null
);
$userIdList = array_column($userIdList, 'user_id');
$sessionList = SessionManager::get_sessions_list();
$sessionIdList = array_column($sessionList, 'id');
$courseCodeList = array();
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);
$groupsId = array_keys($groups);
if (is_array($groupsId)) {
foreach ($groupsId as $groupId) {
$groupUsers = GroupPortalManager::get_users_by_group($groupId);
if ($searchByGroups) {
$groups = GroupPortalManager::get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_ADMIN);
$groupsId = array_keys($groups);
if (!is_array($groupUsers)) {
continue;
}
if (is_array($groupsId)) {
foreach ($groupsId as $groupId) {
$groupUsers = GroupPortalManager::get_users_by_group($groupId);
foreach ($groupUsers as $memberId => $member) {
if ($member['user_id'] == $userId ) {
if (!is_array($groupUsers)) {
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);
}
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') {
$count = CourseManager::get_count_user_list_from_course_code(
false,

Loading…
Cancel
Save