Fixes in sessions due recent changes

skala
Julio Montoya 14 years ago
parent 88dd2a4c06
commit f8ff1d2fab
  1. 2
      main/admin/change_user_session.php
  2. 11
      main/admin/resume_session.php
  3. 2
      main/exercice/question_pool.php
  4. 76
      main/inc/lib/sessionmanager.lib.php
  5. 2
      main/session/index.php

@ -17,7 +17,7 @@ SessionManager::protect_session_edit($session_id);
if (api_is_platform_admin()) {
$sessions = SessionManager::get_sessions_admin();
} else {
$sessions = SessionManager::get_sessions_by_coach(api_get_session_id());
$sessions = SessionManager::get_sessions_by_general_coach(api_get_session_id());
}
$message = null;

@ -266,8 +266,10 @@ if ($session['nbr_users'] == 0) {
$row_class = null;
$moved_date = '-';
$moved_link = '<a href="change_user_session.php?user_id='.$user['user_id'].'&id_session='.$id_session.'">'.Display::return_icon('move.png', get_lang('ChangeUserSession')).'</a>&nbsp;';
//User in this session is subscribed but was moved to another session
if (isset($user['moved_to']) && !empty($user['moved_to']) || $user['moved_status'] == SessionManager::SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION) {
$information = $reasons[$user['moved_status']];
@ -286,6 +288,7 @@ if ($session['nbr_users'] == 0) {
}
$row_class = 'row_odd';
$moved_link = Display::return_icon('move_na.png', get_lang('ChangeUserSession')).'&nbsp;';
$delete_link = Display::return_icon('delete_na.png', get_lang('Delete')).'&nbsp;';
} else {
$session_origin_info = SessionManager::get_session_rel_user_by_moved_to($id_session, $user['user_id']);
@ -303,6 +306,9 @@ if ($session['nbr_users'] == 0) {
$destination = Display::url($session['name'], $url);
$destination = ' / '.$destination;
}
$delete_link = '<a href="'.api_get_self().'?id_session='.$id_session.'&action=delete&user='.$user['user_id'].'" onclick="javascript:if(!confirm(\''.get_lang('ConfirmYourChoice').'\')) return false;">'.Display::return_icon('delete.png', get_lang('Delete')).'</a>';
}
$link_to_add_user_in_url = '';
@ -314,8 +320,9 @@ if ($session['nbr_users'] == 0) {
$link_to_add_user_in_url = '<a href="resume_session.php?action=add_user_to_url&id_session='.$id_session.'&user_id='.$user['user_id'].'">'.$add.'</a>';
}
}
echo '<tr class="'.$row_class.'">
<td width="50%">
<td width="30%">
'.$user_link.'
</td>
<td>'.$information.'</td>
@ -325,7 +332,7 @@ if ($session['nbr_users'] == 0) {
<a href="../mySpace/myStudents.php?student='.$user['user_id'].''.$orig_param.'">'.Display::return_icon('statistics.gif', get_lang('Reporting')).'</a>&nbsp;
<a href="session_course_user.php?id_user='.$user['user_id'].'&id_session='.$id_session.'">'.Display::return_icon('course.gif', get_lang('BlockCoursesForThisUser')).'</a>&nbsp;
'.$moved_link.'
<a href="'.api_get_self().'?id_session='.$id_session.'&action=delete&user='.$user['user_id'].'" onclick="javascript:if(!confirm(\''.get_lang('ConfirmYourChoice').'\')) return false;">'.Display::return_icon('delete.png', get_lang('Delete')).'</a>
'.$delete_link.'
'.$link_to_add_user_in_url.'
</td>
</tr>';

@ -285,7 +285,7 @@ if (isset($type)) {
echo '<input type="hidden" name="fromExercise" value="'.$fromExercise.'">';
// Session list, if sessions are used.
$session_list = SessionManager::get_sessions_by_coach(api_get_user_id());
$session_list = SessionManager::get_sessions_by_general_coach(api_get_user_id());
$tabAttrParam = array('class'=>'chzn-select', 'onchange'=>'submit_form(this)'); // when sessions are used
$labelFormRow = get_lang('Session');
$session_select_list = array();

@ -825,6 +825,13 @@ class SessionManager {
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$user_status = SessionManager::get_user_status_in_session($session_id, $user_id);
if ($user_status['moved_to'] != 0) {
//You can't subscribe a user that was moved
return false;
}
$delete_sql = "DELETE FROM $tbl_session_rel_user WHERE id_session = '$session_id' AND id_user ='$user_id' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."";
Database::query($delete_sql);
@ -1669,9 +1676,54 @@ class SessionManager {
return $return_array;
}
public static function get_sessions_by_coach($user_id) {
public static function get_sessions_by_general_coach($user_id) {
$session_table = Database::get_main_table(TABLE_MAIN_SESSION);
return Database::select('*', $session_table, array('where'=>array('id_coach = ?'=>$user_id)));
$user_id = intval($user_id);
// session where we are general coach
$sql = 'SELECT DISTINCT id, name, date_start, date_end
FROM ' . $session_table . '
WHERE id_coach=' . $user_id;
if (api_is_multiple_url_enabled()) {
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
$sql = 'SELECT DISTINCT id, name, date_start, date_end
FROM ' . $session_table . ' session INNER JOIN '.$tbl_session_rel_access_url.' session_rel_url
ON (session.id = session_rel_url.session_id)
WHERE id_coach=' . $user_id.' AND access_url_id = '.$access_url_id;
}
}
$result = Database::query($sql);
return Database::store_result($result, 'ASSOC');
}
function get_sessions_by_coach($user_id) {
// table definition
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = 'SELECT DISTINCT session.id, session.name, session.date_start, session.date_end
FROM ' . $tbl_session . ' as session
INNER JOIN ' . $tbl_session_course_user . ' as session_course_user
ON session.id = session_course_user.id_session
AND session_course_user.id_user=' . $user_id.' AND session_course_user.status=2';
if (api_is_multiple_url_enabled()) {
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql = 'SELECT DISTINCT session.id, session.name, session.date_start, session.date_end
FROM ' . $tbl_session . ' as session
INNER JOIN ' . $tbl_session_course_user . ' as session_course_user
ON session.id = session_course_user.id_session AND session_course_user.id_user = '.$user_id.' AND session_course_user.status=2
INNER JOIN '.$tbl_session_rel_access_url.' session_rel_url
ON (session.id = session_rel_url.session_id)
WHERE access_url_id = '.$access_url_id;
}
}
$result = Database::query($sql);
return Database::store_result($result, 'ASSOC');
}
/*
@ -2077,6 +2129,21 @@ class SessionManager {
return Database::store_result($result);
}
static function get_session_course_coaches_by_user($course_code, $session_id, $user_id) {
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
// Get coachs of the courses in session
$sql = "SELECT user.user_id FROM $tbl_session_rel_course_rel_user session_rcru, $tbl_user user
WHERE session_rcru.id_user = user.user_id AND
session_rcru.id_session = '".intval($session_id)."' AND
session_rcru.course_code ='".Database::escape_string($course_code)."' AND
session_rcru.status=2";
$result = Database::query($sql);
return Database::store_result($result);
}
static function get_session_course_coaches_to_string($course_code, $session_id) {
$coaches = self::get_session_course_coaches($course_code, $session_id);
if (!empty($coaches)) {
@ -2167,6 +2234,11 @@ class SessionManager {
return Database::store_result($result, 'ASSOC');
}
/**
* Returns a human readable string
* @params array An array with all the session dates
* @return string
*/
static function parse_session_dates($session_info) {
$session_info['access_start_date'] = api_get_local_time($session_info['access_start_date'], null, null, true);
$session_info['access_end_date'] = api_get_local_time($session_info['access_start_date'], null, null, true);

@ -40,7 +40,7 @@ if (isset ($_SESSION['objExercise'])) {
}
$session_info = SessionManager::fetch($session_id);
$session_list = SessionManager::get_sessions_by_coach(api_get_user_id());
$session_list = SessionManager::get_sessions_by_general_coach(api_get_user_id());
$course_list = SessionManager::get_course_list_by_session_id($session_id);
//Getting all sessions where I'm subscribed

Loading…
Cancel
Save