Skip to content

Commit

Permalink
Webservice: Add param duplicateAgendaContent to create_session_from_m…
Browse files Browse the repository at this point in the history
…odel - refs BT#19050
  • Loading branch information
AngelFQC committed Nov 25, 2021
1 parent e9b2d17 commit 78039fd
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
40 changes: 40 additions & 0 deletions main/inc/lib/sessionmanager.lib.php
Expand Up @@ -9913,4 +9913,44 @@ private static function compareByCourse($listA, $listB)
return -1;
}
}

public static function importAgendaFromSessionModel(int $modelSessionId, int $sessionId, int $courseId)
{
$em = Database::getManager();
$repo = $em->getRepository('ChamiloCourseBundle:CCalendarEvent');

$courseInfo = api_get_course_info_by_id($courseId);
$session = api_get_session_entity($sessionId);
$modelSession = api_get_session_entity($modelSessionId);

$sessionDateDiff = $modelSession->getAccessStartDate()->diff($session->getAccessStartDate());

$events = $repo->findBy(
['cId' => $courseId, 'sessionId' => $modelSessionId]
);

$agenda = new Agenda('course');
$agenda->set_course($courseInfo);
$agenda->setSessionId($sessionId);

foreach ($events as $event) {
$startDate = $event->getStartDate()->add($sessionDateDiff);
$endDate = $event->getEndDate()->add($sessionDateDiff);

$agenda->addEvent(
$startDate->format('Y-m-d H:i:s'),
$endDate->format('Y-m-d H:i:s'),
'false',
$event->getTitle(),
$event->getContent(),
['GROUP:0'],
false,
null,
[],
[],
$event->getComment(),
$event->getColor()
);
}
}
}
7 changes: 7 additions & 0 deletions main/inc/lib/webservices/Rest.php
Expand Up @@ -1923,6 +1923,7 @@ public function createSessionFromModel(HttpRequest $request): int
$startDate = $request->request->get('startDate');
$endDate = $request->request->get('endDate');
$extraFields = $request->request->get('extraFields');
$duplicateAgendaContent = $request->request->getBoolean('duplicateAgendaContent');

if (empty($modelSessionId) || empty($sessionName) || empty($startDate) || empty($endDate)) {
throw new Exception(get_lang('NoData'));
Expand Down Expand Up @@ -1999,6 +2000,12 @@ public function createSessionFromModel(HttpRequest $request): int
throw new Exception(get_lang('CoursesNotAddedToSession'));
}

if ($duplicateAgendaContent) {
foreach ($courseList as $courseId) {
SessionManager::importAgendaFromSessionModel($modelSessionId, $newSessionId, $courseId);
}
}

if (api_is_multiple_url_enabled()) {
if (api_get_current_access_url_id() != -1) {
UrlManager::add_session_to_url(
Expand Down

0 comments on commit 78039fd

Please sign in to comment.