Fix course history for sessions with duration - refs BT#12970

pull/2487/head
Angel Fernando Quiroz Campos 8 years ago
parent 85e567f4e0
commit 628e8aa331
  1. 2
      main/inc/lib/api.lib.php
  2. 15
      main/inc/lib/banner.lib.php
  3. 4
      main/inc/lib/display.lib.php
  4. 28
      main/inc/lib/usermanager.lib.php

@ -2279,7 +2279,7 @@ function api_get_session_visibility(
$totalDuration = $firstAccess + $duration + $userDuration; $totalDuration = $firstAccess + $duration + $userDuration;
return $totalDuration > $currentTime ? SESSION_AVAILABLE : SESSION_INVISIBLE; return $totalDuration > $currentTime ? SESSION_AVAILABLE : SESSION_VISIBLE_READ_ONLY;
} }
return SESSION_AVAILABLE; return SESSION_AVAILABLE;

@ -642,10 +642,17 @@ function return_breadcrumb($interbreadcrumb, $language_file, $nameTools)
$user_id $user_id
); );
$additonalBlocks .= Display::return_message( if ($daysLeft >= 0) {
sprintf(get_lang('SessionDurationXDaysLeft'), $daysLeft), $additonalBlocks .= Display::return_message(
'information' sprintf(get_lang('SessionDurationXDaysLeft'), $daysLeft),
); 'information'
);
} else {
$additonalBlocks .= Display::return_message(
get_lang('YourSessionTimeHasExpired'),
'warning'
);
}
} }
break; break;
} }

@ -1576,7 +1576,9 @@ class Display
) { ) {
if (isset($session_info['duration']) && !empty($session_info['duration'])) { if (isset($session_info['duration']) && !empty($session_info['duration'])) {
$daysLeft = SessionManager::getDayLeftInSession($session_info, api_get_user_id()); $daysLeft = SessionManager::getDayLeftInSession($session_info, api_get_user_id());
$session['duration'] = sprintf(get_lang('SessionDurationXDaysLeft'), $daysLeft); $session['duration'] = $daysLeft >= 0
? sprintf(get_lang('SessionDurationXDaysLeft'), $daysLeft)
: get_lang('YourSessionTimeHasExpired');
} }
$active = true; $active = true;
} else { } else {

@ -2661,6 +2661,7 @@ class UserManager
s.name, s.name,
s.accessStartDate AS access_start_date, s.accessStartDate AS access_start_date,
s.accessEndDate AS access_end_date, s.accessEndDate AS access_end_date,
s.duration,
sc.id AS session_category_id, sc.id AS session_category_id,
sc.name AS session_category_name, sc.name AS session_category_name,
sc.dateStart AS session_category_date_start, sc.dateStart AS session_category_date_start,
@ -2695,16 +2696,23 @@ class UserManager
$user_id, $user_id,
$session_id $session_id
); );
$daysLeft = SessionManager::getDayLeftInSession($row, $user_id);
// User portal filters: // User portal filters:
if ($ignoreTimeLimit === false) { if ($ignoreTimeLimit === false) {
if ($is_time_over) { if ($is_time_over) {
// History // History
if (empty($row['access_end_date'])) { if ($row['duration']) {
continue; if ($daysLeft >= 0) {
continue;
}
} else { } else {
if ($row['access_end_date'] > $now) { if (empty($row['access_end_date'])) {
continue; continue;
} else {
if ($row['access_end_date'] > $now) {
continue;
}
} }
} }
} else { } else {
@ -2715,12 +2723,18 @@ class UserManager
if (api_is_platform_admin() || $isGeneralCoach || $isCoachOfCourse) { if (api_is_platform_admin() || $isGeneralCoach || $isCoachOfCourse) {
// Teachers can access the session depending in the access_coach date // Teachers can access the session depending in the access_coach date
} else { } else {
if (isset($row['access_end_date']) && if ($row['duration']) {
!empty($row['access_end_date']) if ($daysLeft <= 0) {
) {
if ($row['access_end_date'] <= $now) {
continue; continue;
} }
} else {
if (isset($row['access_end_date']) &&
!empty($row['access_end_date'])
) {
if ($row['access_end_date'] <= $now) {
continue;
}
}
} }
} }
} }

Loading…
Cancel
Save