Some session fixes

skala
Julio Montoya 13 years ago
parent 3cde7f5629
commit d566f172b4
  1. 66
      main/admin/user_information.php
  2. 3
      main/inc/lib/course.lib.php
  3. 17
      main/inc/lib/sessionmanager.lib.php
  4. 2
      main/inc/lib/table_sort.class.php
  5. 23
      main/inc/lib/usermanager.lib.php
  6. 1
      main/inc/lib/userportal.lib.php
  7. 5
      main/mySpace/user_add.php

@ -19,7 +19,7 @@ if (!isset($_GET['user_id'])) {
api_not_allowed();
}
$user = api_get_user_info($_GET['user_id']);
$tool_name = api_get_person_name($user['firstName'], $user['lastName']).(empty($user['official_code'])?'':' ('.$user['official_code'].')');
$tool_name = $user['complete_name'].(empty($user['official_code'])?'':' ('.$user['official_code'].')');
Display::display_header($tool_name);
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
@ -69,9 +69,6 @@ echo '<p>'.Display :: encrypted_mailto_link($user['mail'], $user['mail']).'</p>'
echo Display::page_subheader(get_lang('SessionList'));
$main_user_table = Database :: get_main_table(TABLE_MAIN_USER);
$main_course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
$main_course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
@ -80,64 +77,39 @@ $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
$user_id = $user['user_id'];
$result = Database::query("SELECT DISTINCT id, name, date_start, date_end ".
" FROM session_rel_user, session ".
" WHERE id_session=id AND id_user=$user_id ".
" AND (date_start <= NOW() AND date_end >= NOW() OR date_start='0000-00-00') ".
" ORDER BY date_start, date_end, name");
$sessions = Database::store_result($result);
$sessions = SessionManager::get_sessions_by_user($user_id);
$personal_course_list = array();
if (count($sessions)>0) {
if (count($sessions) > 0) {
$header[] = array (get_lang('Code'), true);
$header[] = array (get_lang('Title'), true);
$header[] = array (get_lang('Status'), true);
$header[] = array ('', false);
foreach ($sessions as $enreg) {
foreach ($sessions as $session_item) {
$data = array ();
$personal_course_list = array();
$id_session = $enreg['id'];
$personal_course_list_sql = "SELECT distinct course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, ".(api_is_western_name_order() ? "CONCAT(user.firstname,' ',user.lastname)" : "CONCAT(user.lastname,' ',user.firstname)")." t, email, " .
"course.course_language l, 1 sort, category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name, IF((session_course_user.id_user = 3 AND session_course_user.status=2),'2', '5') ".
" FROM $tbl_session_course_user as session_course_user INNER JOIN $tbl_course AS course ".
" ON course.code = session_course_user.course_code AND session_course_user.id_session = $id_session ".
" INNER JOIN $tbl_session as session ON session_course_user.id_session = session.id ".
" INNER JOIN $tbl_session_course as session_course ".
" LEFT JOIN $tbl_user as user ON user.user_id = session_course_user.id_user AND session_course_user.status = 2 ".
" WHERE session_course_user.id_user = $user_id ORDER BY i";
$course_list_sql_result = Database::query($personal_course_list_sql);
while ($result_row = Database::fetch_array($course_list_sql_result)) {
$key = $result_row['id_session'].' - '.$result_row['k'];
$result_row['s'] = $result_row['14'];
if (!isset($personal_course_list[$key])) {
$personal_course_list[$key] = $result_row;
}
}
foreach ($personal_course_list as $my_course) {
$id_session = $session_item['session_id'];
foreach ($session_item['courses'] as $my_course) {
$course_info = api_get_course_info($my_course['code']);
$row = array ();
$row[] = $my_course['k'];
$row[] = $my_course['i'];
$row[] = $my_course['s'] == STUDENT ? get_lang('Student') : get_lang('Teacher');
$row[] = $my_course['code'];
$row[] = $course_info['title'];
$row[] = $my_course['status'] == STUDENT ? get_lang('Student') : get_lang('Teacher');
$tools = '<a href="course_information.php?code='.$my_course['k'].'&id_session='.$id_session.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
'<a href="'.api_get_path(WEB_COURSE_PATH).$my_course['d'].'?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>';
if( $my_course->status == STUDENT ){
$tools .= '<a href="user_information.php?action=unsubscribe&course_code='.$my_course['k'].'&user_id='.$user['user_id'].'">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>';
$tools = '<a href="course_information.php?code='.$course_info['code'].'&id_session='.$id_session.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
'<a href="'.api_get_path(WEB_COURSE_PATH).$course_info['path'].'?id_session='.$id_session.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>';
if ($my_course['status'] == STUDENT) {
$tools .= '<a href="user_information.php?action=unsubscribe&course_code='.$course_info['code'].'&user_id='.$user['user_id'].'">'.Display::return_icon('delete.png', get_lang('Delete')).'</a>';
}
$row[] = $tools;
$data[] = $row;
}
echo Display::tag('h4',$enreg['name']);
Display :: display_sortable_table($header, $data, array (), array (), array ('user_id' => intval($_GET['user_id'])));
echo Display::page_subheader($session_item['session_name']);
Display :: display_sortable_table($header, $data, array (), array(), array ('user_id' => intval($_GET['user_id'])));
}
} else {
echo '<p>'.get_lang('NoSessionsForThisUser').'</p>';
@ -167,7 +139,7 @@ if (Database::num_rows($res) > 0) {
'<a href="'.api_get_path(WEB_COURSE_PATH).$course->directory.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>' .
'<a href="course_edit.php?course_code='.$course->code.'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>';
if ( $course->status == STUDENT ) {
$tools .= '<a href="user_information.php?action=unsubscribe&course_code='.$course->code.'&user_id='.$user['user_id'].'">'.Display::return_icon('delete.gif', get_lang('Delete')).'</a>';
$tools .= '<a href="user_information.php?action=unsubscribe&course_code='.$course->code.'&user_id='.$user['user_id'].'">'.Display::return_icon('delete.png', get_lang('Delete')).'</a>';
}
$row[] = $tools;

@ -2950,8 +2950,7 @@ class CourseManager {
}
// Step 2: We display the course without a user category.
$html .= self :: display_courses_in_category(0, $load_dirs);
$html .= self :: display_courses_in_category(0, $load_dirs);
return $html;
}

@ -1511,7 +1511,7 @@ class SessionManager {
/**
* Get users by session
* @param int sesssion id
* @param int session id
* @param int filter by status
* @return array a list with an user list
*/
@ -1790,4 +1790,19 @@ class SessionManager {
$result = Database::query($sql);
return Database::store_result($result);
}
static function get_sessions_by_user($user_id) {
$session_categories = UserManager::get_sessions_by_category($user_id);
$session_array = array();
if (!empty($session_categories)) {
foreach ($session_categories as $category) {
if (isset($category['sessions'])) {
foreach ($category['sessions'] as $session) {
$session_array[] = $session;
}
}
}
}
return $session_array;
}
}

@ -26,7 +26,7 @@ class TableSort {
* @return array The sorted dataset
* @author bart.mollet@hogent.be
*/
public function sort_table($data, $column = 0, $direction = SORT_ASC, $type = SORT_REGULAR) {
public static function sort_table($data, $column = 0, $direction = SORT_ASC, $type = SORT_REGULAR) {
if (!is_array($data) || empty($data)) {
return array();
}

@ -1937,16 +1937,21 @@ class UserManager {
$categories = array();
// Get the list of sessions per user
$now = api_get_utc_datetime();
$condition_date_end = "";
if ($is_time_over) {
$condition_date_end = " AND (session.date_end < CURDATE() AND session.date_end != '0000-00-00') ";
$condition_date_end = " AND (session.date_end < '$now' AND session.date_end != '0000-00-00') ";
} else {
$condition_date_end = " AND (session.date_end >= CURDATE() OR session.date_end = '0000-00-00') ";
$condition_date_end = " AND (session.date_end >= '$now' OR session.date_end = '0000-00-00') ";
}
//ORDER BY session_category_id, date_start, date_end
$sql = "SELECT DISTINCT session.id, session.name, session.date_start, session.date_end, session_category_id,
$sql = "SELECT DISTINCT session.id,
session.name,
session.date_start,
session.date_end,
session_category_id,
session_category.name as session_category_name,
session_category.date_start session_category_date_start,
session_category.date_end session_category_date_end,
@ -2133,14 +2138,13 @@ class UserManager {
$where_access_url=" AND access_url_id = $access_url_id AND url_rel_session.session_id = $session_id ";
}
}
// variable initialisation
$personal_course_list_sql = '';
$personal_course_list = array();
$courses = array();
// this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not
$personal_course_list_sql = "SELECT DISTINCT scu.course_code as code FROM $tbl_session_course_user as scu $join_access_url
$personal_course_list_sql = "SELECT DISTINCT scu.course_code as code
FROM $tbl_session_course_user as scu $join_access_url
WHERE scu.id_user = $user_id AND scu.id_session = $session_id $where_access_url
ORDER BY code";
@ -2157,7 +2161,8 @@ class UserManager {
}
if (api_is_allowed_to_create_course()) {
$personal_course_list_sql = "SELECT DISTINCT scu.course_code as code FROM $tbl_session_course_user as scu, $tbl_session as s $join_access_url
$personal_course_list_sql = "SELECT DISTINCT scu.course_code as code
FROM $tbl_session_course_user as scu, $tbl_session as s $join_access_url
WHERE s.id = $session_id AND scu.id_session = s.id AND ((scu.id_user=$user_id AND scu.status=2) OR s.id_coach = $user_id)
$where_access_url
ORDER BY code";

@ -915,6 +915,7 @@ class IndexManager {
$session_now = time();
$html_courses_session = '';
$count_courses_session = 0;
foreach ($session['courses'] as $course) {
$is_coach_course = api_is_coach($session_id, $course['code']);
$allowed_time = 0;

@ -172,11 +172,12 @@ $form->addGroup($group, 'max_member_group', null, '', false);
$form->addElement('radio', 'active', get_lang('ActiveAccount'), get_lang('Active'), 1);
$form->addElement('radio', 'active', '', get_lang('Inactive'), 0);
$now = api_get_utc_datetime();
//session list
//Session list
if (api_is_session_admin()) {
$where = 'WHERE session_admin_id='.intval(api_get_user_id());
$where .= ' AND ( (session.date_start <= CURDATE() AND session.date_end >= CURDATE()) OR session.date_start="0000-00-00" ) ';
$where .= ' AND ( (session.date_start <= "'.$now.'" AND session.date_end >= "'.$now.'") OR session.date_start="0000-00-00" ) ';
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$sql="SELECT id,name,nbr_courses,date_start,date_end FROM $tbl_session $where ORDER BY name";
$result = Database::query($sql);

Loading…
Cancel
Save