Merge remote-tracking branch 'upstream/preprodparkur' into ofaj

ofaj
NicoDucou 4 years ago
commit 359791b67e
  1. 68
      main/inc/lib/agenda.lib.php

@ -4657,26 +4657,18 @@ class Agenda
} }
} }
private function loadSessionsAsEvents(int $start, int $end) /**
* @throws Exception
*/
private function convertSessionWithDuration(int $userId, array $sessionInfo, DateTime $start, DateTime $end): array
{ {
if (false === api_get_configuration_value('personal_calendar_show_sessions_occupation')) {
return;
}
$start = api_get_utc_datetime($start, false, true);
$end = api_get_utc_datetime($end, false, true);
$userInfo = api_get_user_info();
$sessionList = SessionManager::getSessionsFollowedByUser($userInfo['id'], $userInfo['status']);
foreach ($sessionList as $sessionInfo) {
if (!empty($sessionInfo['duration'])) {
$courseAccess = CourseManager::getFirstCourseAccessPerSessionAndUser( $courseAccess = CourseManager::getFirstCourseAccessPerSessionAndUser(
$sessionInfo['session_id'], $sessionInfo['session_id'],
$userInfo['id'] $userId
); );
if (empty($courseAccess)) { if (empty($courseAccess)) {
continue; throw new Exception();
} }
$firstAccessDate = new DateTime($courseAccess['login_course_date'], new DateTimeZone('UTC')); $firstAccessDate = new DateTime($courseAccess['login_course_date'], new DateTimeZone('UTC'));
@ -4686,13 +4678,13 @@ class Agenda
if ($firstAccessDate->format('Y-m-d H:i:s') > $start if ($firstAccessDate->format('Y-m-d H:i:s') > $start
&& $lastAccessDate->format('Y-m-d H:i:s') < $end && $lastAccessDate->format('Y-m-d H:i:s') < $end
) { ) {
continue; throw new Exception();
} }
$courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']); $courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']);
$firstCourse = current($courseList); $firstCourse = current($courseList);
$this->events[] = [ return [
'id' => 'session_'.$sessionInfo['id'], 'id' => 'session_'.$sessionInfo['id'],
'session_id' => $sessionInfo['id'], 'session_id' => $sessionInfo['id'],
'title' => $sessionInfo['name'], 'title' => $sessionInfo['name'],
@ -4712,20 +4704,23 @@ class Agenda
'has_children' => 0, 'has_children' => 0,
'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']), 'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']),
]; ];
continue;
} }
/**
* @throws Exception
*/
private function convertSessionWithDates(array $sessionInfo, DateTime $start, DateTime $end): array
{
if ($sessionInfo['display_start_date'] < $start if ($sessionInfo['display_start_date'] < $start
&& $sessionInfo['display_end_date'] > $end && $sessionInfo['display_end_date'] > $end
) { ) {
continue; throw new Exception();
} }
$courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']); $courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']);
$firstCourse = current($courseList); $firstCourse = current($courseList);
$this->events[] = [ return [
'id' => 'session_'.$sessionInfo['id'], 'id' => 'session_'.$sessionInfo['id'],
'session_id' => $sessionInfo['id'], 'session_id' => $sessionInfo['id'],
'title' => $sessionInfo['name'], 'title' => $sessionInfo['name'],
@ -4750,5 +4745,38 @@ class Agenda
'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']), 'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']),
]; ];
} }
private function loadSessionsAsEvents(int $start, int $end)
{
if (false === api_get_configuration_value('personal_calendar_show_sessions_occupation')) {
return;
}
$start = api_get_utc_datetime($start, false, true);
$end = api_get_utc_datetime($end, false, true);
$userInfo = api_get_user_info();
$sessionList = SessionManager::getSessionsFollowedByUser($userInfo['id'], $userInfo['status']);
foreach ($sessionList as $sessionInfo) {
if (!empty($sessionInfo['duration'])) {
try {
$this->events[] = $this->convertSessionWithDuration($userInfo['id'], $sessionInfo, $start, $end);
} catch (Exception $e) {
continue;
}
continue;
}
if (empty($sessionInfo['display_start_date']) || empty($sessionInfo['display_end_date'])) {
continue;
}
try {
$this->events[] = $this->convertSessionWithDates($sessionInfo, $start, $end);
} catch (Exception $e) {
continue;
}
}
} }
} }

Loading…
Cancel
Save