Session: Use entities to get relations

pull/3844/head
Julio Montoya 5 years ago
parent 0bdacbb145
commit dae8ff1077
  1. 124
      public/main/admin/user_information.php
  2. 78
      public/main/inc/lib/sessionmanager.lib.php
  3. 4
      public/main/session/add_courses_to_session.php
  4. 3
      public/main/session/add_edit_users_to_session.php
  5. 3
      public/main/session/add_students_to_session.php
  6. 3
      public/main/session/add_teachers_to_session.php
  7. 3
      public/main/session/add_users_to_session.php
  8. 4
      public/main/session/add_users_to_session_course.php
  9. 86
      public/main/session/resume_session.php
  10. 3
      public/main/session/session_course_edit.php
  11. 3
      public/main/session/session_course_list.php
  12. 3
      public/main/session/session_course_user.php
  13. 3
      public/main/session/session_course_user_list.php
  14. 4
      public/main/session/session_edit.php
  15. 4
      public/main/session/session_user_edit.php
  16. 3
      public/main/session/session_user_import.php
  17. 20
      public/main/template/default/session/resume_session.html.twig

@ -11,6 +11,7 @@ use Chamilo\CoreBundle\Framework\Container;
*
* @author Bart Mollet
*/
$cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
@ -20,7 +21,6 @@ if (empty($userId)) {
api_not_allowed(true);
}
$user = api_get_user_entity($userId);
//$user = api_get_user_info($userId, true);
if (null === $user) {
api_not_allowed(true);
@ -145,7 +145,7 @@ $data = [
get_lang('Phone') => $user->getPhone(),
get_lang('Course code') => $user->getOfficialCode(),
//get_lang('Online') => !empty($user['user_is_online']) ? Display::return_icon('online.png') : Display::return_icon('offline.png'),
get_lang('Status') => 1 == $user->getStatus() ? get_lang('Trainer') : get_lang('Learner'),
get_lang('Status') => 1 === $user->getStatus() ? get_lang('Trainer') : get_lang('Learner'),
];
$params = [];
@ -229,7 +229,6 @@ foreach ($data as $label => $item) {
* Show social activity.
*/
if ('true' === api_get_setting('allow_social_tool')) {
$userObject = api_get_user_entity($userId);
$data = [];
$messagesSent = '';
// Calculate values
@ -264,7 +263,9 @@ if ('true' === api_get_setting('allow_social_tool')) {
/**
* Show the sessions in which this user is subscribed.
*/
$sessions = SessionManager::get_sessions_by_user($userId, true);
//$sessions = SessionManager::get_sessions_by_user($userId, true);
$sessions = Container::getSessionRepository()->getSessionsByUser($user, api_get_url_entity());
$personal_course_list = [];
$courseToolInformationTotal = null;
$sessionInformation = '';
@ -286,19 +287,24 @@ if (count($sessions) > 0) {
$csvContent[] = [];
$csvContent[] = [get_lang('Course sessions')];
foreach ($sessions as $session_item) {
foreach ($sessions as $session) {
$data = [];
$personal_course_list = [];
$id_session = $session_item['session_id'];
$sessionId = $session->getId();
$csvContent[] = [$session_item['session_name']];
$csvContent[] = [$session->getName()];
$csvContent[] = $headerList;
foreach ($session_item['courses'] as $my_course) {
$courseInfo = api_get_course_info_by_id($my_course['real_id']);
foreach ($session->getCourses() as $sessionRelCourse) {
$course = $sessionRelCourse->getCourse();
$courseId = $sessionRelCourse->getCourse()->getId();
$courseCode = $sessionRelCourse->getCourse()->getCode();
$courseUrl = api_get_course_url($courseCode);
$sessionStatus = SessionManager::get_user_status_in_course_session(
$userId,
$courseInfo['real_id'],
$id_session
$courseId,
$sessionId
);
$status = null;
switch ($sessionStatus) {
@ -313,39 +319,39 @@ if (count($sessions) > 0) {
$tools = Display::url(
Display::return_icon('statistics.png', get_lang('Statistics')),
api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?details=true&student='.$userId.'&id_session='.$id_session.'&course='.$courseInfo['code']
api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?details=true&student='.$userId.'&id_session='.$sessionId.'&course='.$courseCode
);
$tools .= '&nbsp;<a href="course_information.php?code='.$courseInfo['code'].'&id_session='.$id_session.'">'.
$tools .= '&nbsp;<a href="course_information.php?code='.$courseCode.'&id_session='.$sessionId.'">'.
Display::return_icon('info2.png', get_lang('Overview')).'</a>'.
'<a href="'.$courseInfo['course_public_url'].'?id_session='.$id_session.'">'.
'<a href="'.$courseUrl.'?id_session='.$sessionId.'">'.
Display::return_icon('course_home.png', get_lang('Course home')).'</a>';
if (!empty($my_course['status']) && STUDENT == $my_course['status']) {
/*if (!empty($my_course['status']) && STUDENT == $my_course['status']) {
$tools .= '<a
href="user_information.php?action=unsubscribe_session_course&course_id='.$courseInfo['real_id'].'&user_id='.$userId.'&id_session='.$id_session.'">'.
href="user_information.php?action=unsubscribe_session_course&course_id='.$courseId.'&user_id='.$userId.'&id_session='.$sessionId.'">'.
Display::return_icon('delete.png', get_lang('Delete')).'</a>';
}
}*/
$timeSpent = api_time_to_hms(
Tracking::get_time_spent_on_the_course(
$userId,
$courseInfo['real_id'],
$id_session
$courseId,
$sessionId
)
);
$totalForumMessages = CourseManager::getCountPostInForumPerUser(
$userId,
$courseInfo['real_id'],
$id_session
$totalForumMessages = Container::getForumPostRepository()->countUserForumPosts(
$user,
$course,
$session
);
$row = [
Display::url(
$courseInfo['code'],
$courseInfo['course_public_url'].'?id_session='.$id_session
$courseCode,
$courseUrl.'?id_session='.$sessionId
),
$courseInfo['title'],
$course->getTitle(),
$status,
$timeSpent,
$totalForumMessages,
@ -355,20 +361,22 @@ if (count($sessions) > 0) {
$csvContent[] = array_map('strip_tags', $row);
$data[] = $row;
$result = Tracking::getToolInformation(
/*$result = Tracking::getToolInformation(
$userId,
$courseInfo,
$id_session
$sessionId
);
if (!empty($result['html'])) {
$courseToolInformationTotal .= $result['html'];
$csvContent = array_merge($csvContent, $result['array']);
}
}*/
}
$dates = array_filter(
[$session_item['access_start_date'], $session_item['access_end_date']]
[
$session->getAccessStartDate()->format('Y-m-d H:i:s'),
$session->getAccessEndDate()->format('Y-m-d H:i:s'),
]
);
$certificateLink = Display::url(
@ -378,15 +386,15 @@ if (count($sessions) > 0) {
[
'action' => 'export_to_pdf',
'type' => 'achievement',
'session_to_export' => $id_session,
'session_to_export' => $sessionId,
'student' => $userId,
]
),
['target' => '_blank']
);
$sessionInformation .= Display::page_subheader(
'<a href="'.api_get_path(WEB_CODE_PATH).'session/resume_session.php?id_session='.$id_session.'">'.
$session_item['session_name'].'</a>',
'<a href="'.api_get_path(WEB_CODE_PATH).'session/resume_session.php?id_session='.$sessionId.'">'.
$session->getName().'</a>',
$certificateLink.' '.implode(' - ', $dates)
);
@ -404,16 +412,9 @@ if (count($sessions) > 0) {
}
$courseToolInformationTotal = '';
/**
* Show the courses in which this user is subscribed.
*/
$sql = 'SELECT * FROM '.$table_course_user.' cu, '.$table_course.' c
WHERE
cu.user_id = '.$userId.' AND
cu.c_id = c.id AND
cu.relation_type <> '.COURSE_RELATION_TYPE_RRHH.' ';
$res = Database::query($sql);
if (Database::num_rows($res) > 0) {
$courseRelUserList = Container::getCourseRepository()->getCoursesByUser($user, api_get_url_entity());
if (count($courseRelUserList) > 0) {
$header = [
[get_lang('Course code')],
[get_lang('Title')],
@ -433,44 +434,41 @@ if (Database::num_rows($res) > 0) {
$data = [];
$courseToolInformationTotal = null;
while ($course = Database::fetch_object($res)) {
$courseInfo = api_get_course_info_by_id($course->c_id);
$courseCode = $courseInfo['code'];
foreach ($courseRelUserList as $courseRelUser) {
$course = $courseRelUser->getCourse();
$courseId = $course->getId();
$courseCode = $course->getCode();
$courseToolInformation = null;
$courseUrl = api_get_course_url($courseCode);
$tools = Display::url(
Display::return_icon('statistics.png', get_lang('Statistics')),
api_get_path(WEB_CODE_PATH).'mySpace/myStudents.php?details=true&student='.$userId.'&id_session=0&course='.$courseCode
);
$tools .= '&nbsp;<a href="course_information.php?code='.$courseCode.'">'.
Display::return_icon('info2.png', get_lang('Overview')).'</a>'.
'<a href="'.$courseInfo['course_public_url'].'">'.
'<a href="'.$courseUrl.'">'.
Display::return_icon('course_home.png', get_lang('Course home')).'</a>'.
'<a href="course_edit.php?id='.$course->c_id.'">'.
'<a href="course_edit.php?id='.$courseId.'">'.
Display::return_icon('edit.png', get_lang('Edit')).'</a>';
if (STUDENT == $course->status) {
$tools .= '<a href="user_information.php?action=unsubscribe&course_id='.$courseInfo['real_id'].'&user_id='.$userId.'">'.
if (STUDENT == $courseRelUser->getStatus()) {
$tools .= '<a href="user_information.php?action=unsubscribe&course_id='.$courseId.'&user_id='.$userId.'">'.
Display::return_icon('delete.png', get_lang('Delete')).'</a>';
}
$timeSpent = api_time_to_hms(
Tracking::get_time_spent_on_the_course(
$userId,
$courseInfo['real_id']
$courseId
)
);
$totalForumMessages = CourseManager::getCountPostInForumPerUser(
$userId,
$course->id,
0
);
$totalForumMessages = Container::getForumPostRepository()->countUserForumPosts($user, $course);
$row = [
Display::url($courseCode, $courseInfo['course_public_url']),
$course->title,
STUDENT == $course->status ? get_lang('Learner') : get_lang('Trainer'),
Display::url($courseCode, $courseUrl),
$course->getTitle(),
STUDENT == $courseRelUser->getStatus() ? get_lang('Learner') : get_lang('Trainer'),
$timeSpent,
$totalForumMessages,
$tools,
@ -479,13 +477,13 @@ if (Database::num_rows($res) > 0) {
$csvContent[] = array_map('strip_tags', $row);
$data[] = $row;
$result = Tracking::getToolInformation(
/*$result = Tracking::getToolInformation(
$userId,
$courseInfo,
0
);
$courseToolInformationTotal .= $result['html'];
$csvContent = array_merge($csvContent, $result['array']);
$csvContent = array_merge($csvContent, $result['array']);*/
}
$courseInformation = Display::return_sortable_table(

@ -78,7 +78,7 @@ class SessionManager
'nbr_classes' => $session->getNbrClasses(),
'session_admin_id' => $session->getSessionAdmin()->getId(),
'visibility' => $session->getVisibility(),
'promotion_id' => $session->getPromotionId(),
'promotion_id' => $session->getPromotion() ? $session->getPromotion()->getId() : 0,
'display_start_date' => $session->getDisplayStartDate()
? $session->getDisplayStartDate()->format('Y-m-d H:i:s')
: null,
@ -3576,12 +3576,19 @@ class SessionManager
return Database::affected_rows($result) > 0;
}
$em = Database::getManager();
$sessionRelCourseRelUser = new SessionRelCourseRelUser();
$sessionRelCourseRelUser
->setSession(api_get_session_entity($sessionId))
->setCourse(api_get_course_entity($courseId))
->setUser(api_get_user_entity($userId))
->setStatus(2)
->setVisibility(1)
;
$em->persist($sessionRelCourseRelUser);
$em->flush();
$sql = "INSERT INTO $tblSessionRelCourseRelUser(session_id, c_id, user_id, status, visibility)
VALUES($sessionId, $courseId, $userId, 2, 1)";
$result = Database::query($sql);
return Database::affected_rows($result) > 0;
return true;
}
/**
@ -4762,7 +4769,7 @@ class SessionManager
return $row[0];
}
public static function cantEditSession(Session $session, bool $checkSession = true): bool
public static function cantEditSession(?Session $session = null, bool $checkSession = true): bool
{
if (!self::allowToManageSessions()) {
return false;
@ -4788,25 +4795,20 @@ class SessionManager
*
* @return mixed | bool true if pass the check, api_not_allowed otherwise
*/
public static function protectSession(Session $session, bool $checkSession = true)
public static function protectSession(?Session $session = null, bool $checkSession = true)
{
if (!self::cantEditSession($session, $checkSession)) {
api_not_allowed(true);
}
}
/**
* @return bool
*/
public static function allowToManageSessions()
public static function allowToManageSessions(): bool
{
if (self::allowManageAllSessions()) {
return true;
}
$setting = api_get_setting('allow_teachers_to_create_sessions');
if (api_is_teacher() && 'true' === $setting) {
if (api_is_teacher() && 'true' === api_get_setting('allow_teachers_to_create_sessions')) {
return true;
}
@ -7737,14 +7739,9 @@ class SessionManager
return $sessionList;
}
/**
* @param array $sessionInfo
*
* @return string
*/
public static function getSessionVisibility($sessionInfo)
public static function getSessionVisibility(Session $session) : string
{
switch ($sessionInfo['visibility']) {
switch ($session->getVisibility()) {
case 1:
return get_lang('Read only');
case 2:
@ -7757,40 +7754,35 @@ class SessionManager
/**
* Returns a human readable string.
*
* @param array $sessionInfo An array with all the session dates
* @param bool $showTime
*
* @return array
*/
public static function parseSessionDates($sessionInfo, $showTime = false)
public static function parseSessionDates(Session $session, bool $showTime = false)
{
$displayDates = self::convertSessionDateToString(
$sessionInfo['display_start_date'],
$sessionInfo['display_end_date'],
$session->getDisplayStartDate()->format('Y-m-d H:i:s'),
$session->getDisplayEndDate()->format('Y-m-d H:i:s'),
$showTime,
true
);
$accessDates = self::convertSessionDateToString(
$sessionInfo['access_start_date'],
$sessionInfo['access_end_date'],
$session->getAccessStartDate()->format('Y-m-d H:i:s'),
$session->getAccessEndDate()->format('Y-m-d H:i:s'),
$showTime,
true
);
$coachDates = self::convertSessionDateToString(
$sessionInfo['coach_access_start_date'],
$sessionInfo['coach_access_end_date'],
$session->getCoachAccessStartDate()->format('Y-m-d H:i:s'),
$session->getCoachAccessEndDate()->format('Y-m-d H:i:s'),
$showTime,
true
);
$result = [
return [
'access' => $accessDates,
'display' => $displayDates,
'coach' => $coachDates,
];
return $result;
}
/**
@ -9590,32 +9582,36 @@ class SessionManager
}
}
private static function allowed(Session $session): bool
private static function allowed(?Session $session = null): bool
{
if (api_is_platform_admin()) {
return true;
}
if (null === $session) {
return false;
}
$userId = api_get_user_id();
if (api_is_session_admin() &&
'true' !== api_get_setting('allow_session_admins_to_manage_all_sessions')
) {
if ($userId !== $session->getSessionAdmin()->getId()) {
return false;
if ($userId === $session->getSessionAdmin()->getId()) {
return true;
}
}
if (api_is_teacher() &&
'true' === api_get_setting('allow_teachers_to_create_sessions')
) {
if ($userId !== $session->getGeneralCoach()->getId()) {
return false;
if ($userId === $session->getGeneralCoach()->getId()) {
return true;
}
}
return true;
return false;
}
/**

@ -11,8 +11,8 @@ require_once __DIR__.'/../inc/global.inc.php';
$sessionId = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0;
$add = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null;
SessionManager::protectSession($sessionId);
$session = api_get_session_entity($sessionId);
SessionManager::protectSession($session);
$xajax = new xajax();
$xajax->registerFunction(['search_courses', 'AddCourseToSession', 'search_courses']);

@ -18,7 +18,8 @@ if (empty($id_session)) {
}
$addProcess = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null;
SessionManager::protectSession($id_session);
$session = api_get_session_entity($id_session);
SessionManager::protectSession($session);
// setting breadcrumbs
$interbreadcrumb[] = ['url' => 'session_list.php', 'name' => get_lang('Session list')];

@ -26,7 +26,8 @@ $form_sent = 0;
$errorMsg = '';
$users = $sessions = [];
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
SessionManager::protectSession($id);
$session = api_get_session_entity($id);
SessionManager::protectSession($session);
$htmlResult = '';
if (isset($_POST['form_sent']) && $_POST['form_sent']) {

@ -23,7 +23,8 @@ $form_sent = 0;
$errorMsg = '';
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
SessionManager::protectSession($id);
$session = api_get_session_entity($id);
SessionManager::protectSession($session);
$htmlResult = '';
if (isset($_POST['form_sent']) && $_POST['form_sent']) {

@ -15,7 +15,8 @@ $this_section = SECTION_PLATFORM_ADMIN;
$id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0;
$addProcess = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null;
SessionManager::protectSession($id_session);
$session = api_get_session_entity($id_session);
SessionManager::protectSession($session);
// setting breadcrumbs
$interbreadcrumb[] = ['url' => 'session_list.php', 'name' => get_lang('Session list')];

@ -21,8 +21,8 @@ if (empty($id_session) || empty($courseId)) {
$addProcess = isset($_GET['add']) ? Security::remove_XSS($_GET['add']) : null;
SessionManager::protectSession($id_session);
$session = api_get_session_entity($id_session);
SessionManager::protectSession($session);
$courseInfo = api_get_course_info_by_id($courseId);
// setting breadcrumbs

@ -6,11 +6,9 @@ use Chamilo\CoreBundle\Entity\SequenceResource;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionRelCourse;
use Chamilo\CoreBundle\Entity\SessionRelCourseRelUser;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CoreBundle\Repository\SequenceRepository;
/**
* @author Bart Mollet, Julio Montoya lot of fixes
*/
$cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
@ -35,17 +33,8 @@ $interbreadcrumb[] = [
$orig_param = '&origin=resume_session';
// Database Table Definitions
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$tbl_session_rel_class = Database::get_main_table(TABLE_MAIN_SESSION_CLASS);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_category = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
$table_access_url_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER);
$em = Database::getManager();
$sessionCategory = $session->getCategory();
@ -131,11 +120,10 @@ $sessionTitle = Display::page_subheader(get_lang('General properties').$url);
$sessionField = new ExtraField('session');
$extraFieldData = $sessionField->getDataAndFormattedValues($sessionId);
$multiple_url_is_on = api_get_multiple_access_url();
$urlList = [];
if ($multiple_url_is_on) {
$urlList = UrlManager::get_access_url_from_session($sessionId);
$isMultipleUrl = api_is_multiple_url_enabled();
if ($isMultipleUrl) {
$urlList = $session->getUrls();
}
$url = Display::url(
@ -166,10 +154,12 @@ if (0 === $session->getNbrCourses()) {
/** @var SessionRelCourse $sessionRelCourse */
foreach ($courses as $sessionRelCourse) {
$course = $sessionRelCourse->getCourse();
$courseId = $course->getId();
$courseCode = $course->getCode();
// Select the number of users
$numberOfUsers = SessionManager::getCountUsersInCourseSession($course, $session);
// Get coachs of the courses in session
// Get coaches of the courses in session
$namesOfCoaches = [];
$coachSubscriptions = $session->getUserCourseSubscriptionsByStatus($course, Session::COACH);
@ -189,7 +179,7 @@ if (0 === $session->getNbrCourses()) {
),
!$count
? '#'
: api_get_self().'?id_session='.$sessionId.'&course_id='.$course->getId().'&action=move_up'
: api_get_self().'?id_session='.$sessionId.'&course_id='.$courseId.'&action=move_up'
);
$orderButtons .= Display::url(
@ -199,11 +189,11 @@ if (0 === $session->getNbrCourses()) {
),
$count + 1 == count($courses)
? '#'
: api_get_self().'?id_session='.$sessionId.'&course_id='.$course->getId().'&action=move_down'
: api_get_self().'?id_session='.$sessionId.'&course_id='.$courseId.'&action=move_down'
);
}
$courseUrl = api_get_course_url($course->getCode(), $sessionId);
$courseUrl = api_get_course_url($courseCode, $sessionId);
// hide_course_breadcrumb the parameter has been added to hide the name
// of the course, that appeared in the default $interbreadcrumb
@ -222,34 +212,34 @@ if (0 === $session->getNbrCourses()) {
if ($allowSkills) {
$courseItem .= Display::url(
Display::return_icon('skills.png', get_lang('Skills')),
$codePath.'admin/skill_rel_course.php?session_id='.$sessionId.'&course_id='.$course->getId()
$codePath.'admin/skill_rel_course.php?session_id='.$sessionId.'&course_id='.$courseId
);
}
$courseItem .= $orderButtons;
$courseItem .= Display::url(
Display::return_icon('new_user.png', get_lang('Add a user')),
$codePath."session/add_users_to_session_course.php?id_session=$sessionId&course_id=".$course->getId()
$codePath."session/add_users_to_session_course.php?id_session=$sessionId&course_id=".$courseId
);
$courseItem .= Display::url(
Display::return_icon('user.png', get_lang('Users')),
$codePath."session/session_course_user_list.php?id_session=$sessionId&course_code=".$course->getCode()
$codePath."session/session_course_user_list.php?id_session=$sessionId&course_code=".$courseCode
);
$courseItem .= Display::url(
Display::return_icon('import_csv.png', get_lang('Import users list')),
$codePath."user/user_import.php?action=import&cid={$course->getId()}&sid=$sessionId"
$codePath."user/user_import.php?action=import&cid={$courseId}&sid=$sessionId"
);
$courseItem .= Display::url(
Display::return_icon('export_csv.png', get_lang('Export users of a course')),
$codePath."user/user_export.php?file_type=csv&course_session={$course->getCode()}:$sessionId&addcsvheader=1"
$codePath."user/user_export.php?file_type=csv&course_session=$courseCode:$sessionId&addcsvheader=1"
);
$courseItem .= Display::url(
Display::return_icon('statistics.gif', get_lang('Reporting')),
$codePath."tracking/courseLog.php?sid=$sessionId&cid={$course->getId()}$orig_param&hide_course_breadcrumb=1"
$codePath."tracking/courseLog.php?sid=$sessionId&cid={$courseId}$orig_param&hide_course_breadcrumb=1"
);
$courseItem .= Display::url(
Display::return_icon('teacher.png', get_lang('Edit coach')),
$codePath."session/session_course_edit.php?id_session=$sessionId&page=resume_session.php&course_code={$course->getCode()}$orig_param"
$codePath."session/session_course_edit.php?id_session=$sessionId&page=resume_session.php&course_code={$courseCode}$orig_param"
);
$courseItem .= Display::url(
Display::return_icon('folder_document.png', get_lang('File upload')),
@ -257,12 +247,12 @@ if (0 === $session->getNbrCourses()) {
[
'class' => 'session-upload-file-btn',
'data-session' => $sessionId,
'data-course' => $course->getId(),
'data-course' => $courseId,
]
);
$courseItem .= Display::url(
Display::return_icon('delete.png', get_lang('Delete')),
api_get_self()."?id_session=$sessionId&action=delete&idChecked[]={$course->getCode()}",
api_get_self()."?id_session=$sessionId&action=delete&idChecked[]={$courseCode}",
[
'onclick' => "javascript:if(!confirm('".get_lang('Please confirm your choice')."')) return false;",
]
@ -289,53 +279,50 @@ $url .= Display::url(
);
$userListToShow = Display::page_subheader(get_lang('User list').$url);
$userList = SessionManager::get_users_by_session($sessionId);
$sessionRelUsers = Container::getSessionRepository()->getUsersByAccessUrl($session, api_get_url_entity());
if (!empty($userList)) {
$table = new HTML_Table(
['class' => 'table table-bordered', 'id' => 'session-user-list']
);
if (!empty($sessionRelUsers)) {
$table = new HTML_Table(['class' => 'table table-bordered', 'id' => 'session-user-list']);
$table->setHeaderContents(0, 0, '#');
$table->setHeaderContents(0, 1, get_lang('User'));
$table->setHeaderContents(0, 2, get_lang('Status'));
$table->setHeaderContents(0, 3, get_lang('Registration date'));
$table->setHeaderContents(0, 4, get_lang('Detail'));
$row = 1;
foreach ($userList as $user) {
$userId = $user['user_id'];
$userInfo = api_get_user_info($userId);
foreach ($sessionRelUsers as $sessionRelUser) {
$user = $sessionRelUser->getUser();
$userId = $user->getId();
$userLink = '<a href="'.$codePath.'admin/user_information.php?user_id='.$userId.'">'.
api_htmlentities($userInfo['complete_name_with_username']).'</a>';
api_htmlentities(UserManager::formatUserFullName($user)).'</a>';
$reportingLink = Display::url(
Display::return_icon('statistics.gif', get_lang('Reporting')),
$codePath.'mySpace/myStudents.php?student='.$user['user_id'].''.$orig_param.'&id_session='
$codePath.'mySpace/myStudents.php?student='.$userId.''.$orig_param.'&id_session='
.$sessionId
);
$courseUserLink = Display::url(
Display::return_icon('course.png', get_lang('Block user from courses in this session')),
$codePath.'session/session_course_user.php?id_user='.$user['user_id'].'&id_session='
$codePath.'session/session_course_user.php?id_user='.$userId.'&id_session='
.$sessionId
);
$removeLink = Display::url(
Display::return_icon('delete.png', get_lang('Delete')),
api_get_self().'?id_session='.$sessionId.'&action=delete&user='.$user['user_id'],
api_get_self().'?id_session='.$sessionId.'&action=delete&user='.$userId,
['onclick' => "javascript:if(!confirm('".get_lang('Please confirm your choice')."')) return false;"]
);
$addUserToUrlLink = '';
if ($multiple_url_is_on) {
/*if ($isMultipleUrl) {
if ($user['access_url_id'] != $url_id) {
$userLink .= ' '.Display::return_icon('warning.png', get_lang('Users not added to the URL'));
$add = Display::return_icon('add.png', get_lang('Add a userToURL'));
$addUserToUrlLink = '<a href="resume_session.php?action=add_user_to_url&id_session='.$sessionId
.'&user_id='.$user['user_id'].'">'.$add.'</a>';
}
}
}*/
$editUrl = null;
/*
@ -347,7 +334,7 @@ if (!empty($userList)) {
);
}*/
$link = $reportingLink.$courseUserLink.$removeLink.$addUserToUrlLink.$editUrl;
switch ($user['relation_type']) {
switch ($sessionRelUser->getRelationType()) {
case 1:
$status = get_lang('Human Resources Manager');
$link = Display::url(
@ -359,7 +346,7 @@ if (!empty($userList)) {
$status = get_lang('Learner');
}
$registered = !empty($user['registered_at']) ? Display::dateToStringAgoAndLongDate($user['registered_at']) : '';
$registered = Display::dateToStringAgoAndLongDate($sessionRelUser->getRegisteredAt());
$table->setCellContents($row, 0, $row);
$table->setCellContents($row, 1, $userLink);
@ -389,7 +376,6 @@ if (!empty($requirementAndDependencies['dependencies'])) {
$dependencies .= implode(', ', array_column($requirementAndDependencies['dependencies'], 'admin_link'));
}
$promotion = $session->getPromotion();
$programmedAnnouncement = new ScheduledAnnouncement();
$programmedAnnouncement = $programmedAnnouncement->allowed();
@ -398,10 +384,8 @@ $tpl->assign('session_header', $sessionHeader);
$tpl->assign('title', $sessionTitle);
$tpl->assign('session', $session);
$tpl->assign('programmed_announcement', $programmedAnnouncement);
$tpl->assign('session_category', is_null($sessionCategory) ? null : $sessionCategory->getName());
//$tpl->assign('session_dates', SessionManager::parseSessionDates($sessionInfo, true));
//$tpl->assign('session_visibility', SessionManager::getSessionVisibility($sessionInfo));
$tpl->assign('promotion', $promotion);
$tpl->assign('session_dates', SessionManager::parseSessionDates($session, true));
$tpl->assign('session_visibility', SessionManager::getSessionVisibility($session));
$tpl->assign('url_list', $urlList);
$tpl->assign('extra_fields', $extraFieldData);
$tpl->assign('course_list', $courseListToShow);

@ -10,7 +10,8 @@ $cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
$id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0;
SessionManager::protectSession($id_session);
$session = api_get_session_entity($id_session);
SessionManager::protectSession($session);
$course_code = $_GET['course_code'];
$course_info = api_get_course_info($_REQUEST['course_code']);

@ -10,7 +10,8 @@ require_once __DIR__.'/../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
$id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0;
SessionManager::protectSession($id_session);
$session = api_get_session_entity($id_session);
SessionManager::protectSession($session);
// Database Table Definitions
$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);

@ -14,7 +14,8 @@ require_once __DIR__.'/../inc/global.inc.php';
$this_section = SECTION_PLATFORM_ADMIN;
$tool_name = get_lang('Edit session courses by user');
$id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0;
SessionManager::protectSession($id_session);
$session = api_get_session_entity($id_session);
SessionManager::protectSession($session);
$id_user = intval($_GET['id_user']);

@ -14,7 +14,8 @@ $tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$id_session = isset($_GET['id_session']) ? (int) $_GET['id_session'] : 0;
SessionManager::protectSession($id_session);
$session = api_get_session_entity($id_session);
SessionManager::protectSession($session);
if (empty($id_session)) {
api_not_allowed();

@ -18,8 +18,8 @@ $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$id = (int) $_GET['id'];
SessionManager::protectSession($id);
$session = api_get_session_entity($id);
SessionManager::protectSession($session);
$sessionInfo = SessionManager::fetch($id);
// Sets to local time to show it correctly when you edit a session

@ -9,8 +9,8 @@ require_once __DIR__.'/../inc/global.inc.php';
$sessionId = isset($_GET['session_id']) ? $_GET['session_id'] : null;
$userId = isset($_GET['user_id']) ? $_GET['user_id'] : null;
SessionManager::protectSession($sessionId);
$session = api_get_session_entity($sessionId);
SessionManager::protectSession($session);
$sessionInfo = api_get_session_info($sessionId);
if (empty($sessionInfo)) {

@ -11,7 +11,8 @@ set_time_limit(0);
$this_section = SECTION_PLATFORM_ADMIN;
$session_id = isset($_GET['id_session']) ? intval($_GET['id_session']) : null;
SessionManager::protectSession($session_id);
$session = api_get_session_entity($session_id);
SessionManager::protectSession($session);
$form_sent = 0;
$tool_name = get_lang('Import users');

@ -8,16 +8,16 @@
<table id="session-properties" class="table table-bordered">
<tr>
<td>{{ 'Created by'|get_lang }}</td>
<td>{{ session_admin.complete_name_with_message_link }}</td>
<td>{{ session.sessionAdmin | user_complete_name_with_link }}</td>
</tr>
<tr>
<td>{{ 'General coach' | get_lang}} :</td>
<td>{{ general_coach.complete_name_with_message_link }}</td>
<td>{{ session.generalCoach | user_complete_name_with_link }}</td>
</tr>
{% if session_category %}
{% if session.category %}
<tr>
<td>{{ 'Session category' | get_lang}} </td>
<td>{{ session_category }}</td>
<td>{{ session.category.name }}</td>
</tr>
{% endif %}
@ -52,7 +52,7 @@
<tr>
<td>{{ 'Show description' | get_lang}} </td>
<td>
{% if session.show_description == 1 %}
{% if session.showDescription == 1 %}
{{ 'Yes' | get_lang}}
{% else %}
{{ 'No' | get_lang}}
@ -65,20 +65,20 @@
{{ session_visibility }}
</td>
</tr>
{% if promotion %}
{% if session.promotion %}
<tr>
<td>{{ 'Career' | get_lang}}</td>
<td>
<a href="{{ _p.web_main }}admin/career_dashboard.php?filter={{ promotion.career.id }}&submit=&_qf__filter_form=">
{{ promotion.career.name }}
<a href="{{ _p.web_main }}admin/career_dashboard.php?filter={{ session.promotion.career.id }}&submit=&_qf__filter_form=">
{{ session.promotion.career.name }}
</a>
</td>
</tr>
<tr>
<td>{{ 'Promotion' | get_lang}}</td>
<td>
<a href="{{ _p.web_main }}admin/promotions.php?action=edit&id={{ promotion.id }}">
{{ promotion.name }}
<a href="{{ _p.web_main }}admin/promotions.php?action=edit&id={{ session.promotion.id }}">
{{ session.promotion.name }}
</a>
</td>
</tr>

Loading…
Cancel
Save