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;
return $totalDuration > $currentTime ? SESSION_AVAILABLE : SESSION_INVISIBLE;
return $totalDuration > $currentTime ? SESSION_AVAILABLE : SESSION_VISIBLE_READ_ONLY;
}
return SESSION_AVAILABLE;

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

@ -1576,7 +1576,9 @@ class Display
) {
if (isset($session_info['duration']) && !empty($session_info['duration'])) {
$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;
} else {

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

Loading…
Cancel
Save