diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index 0731cae7d2..0d93422ed1 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -1852,7 +1852,9 @@ class SessionManager $empty_users = true, $registerUsersToAllCourses = true ) { - if ($sessionId != strval(intval($sessionId))) { + $sessionId = (int) $sessionId; + + if (empty($sessionId)) { return false; } @@ -2470,6 +2472,7 @@ class SessionManager * @param bool $removeExistingCoursesWithUsers Whether to unsubscribe * existing courses and users (true, default) or not (false) * @param bool $copyEvaluation from base course to session course + * @param bool $copyCourseTeachersAsCoach * * @throws Exception * @@ -2479,7 +2482,8 @@ class SessionManager $sessionId, $courseList, $removeExistingCoursesWithUsers = true, - $copyEvaluation = false + $copyEvaluation = false, + $copyCourseTeachersAsCoach = false ) { $sessionId = (int) $sessionId; @@ -2640,9 +2644,7 @@ class SessionManager /** @var AbstractLink $link */ foreach ($links as $link) { //$newCategoryId = $newCategoryIdList[$link->get_category_id()]; - $link->set_category_id( - $sessionGradeBookCategoryId - ); + $link->set_category_id($sessionGradeBookCategoryId); $link->add(); } } @@ -2658,9 +2660,7 @@ class SessionManager /** @var Evaluation $evaluation */ foreach ($evaluationList as $evaluation) { //$evaluationId = $newCategoryIdList[$evaluation->get_category_id()]; - $evaluation->set_category_id( - $sessionGradeBookCategoryId - ); + $evaluation->set_category_id($sessionGradeBookCategoryId); $evaluation->add(); } } @@ -2695,10 +2695,10 @@ class SessionManager $existingCourses[] = ['c_id' => $courseId]; $nbr_courses++; - // subscribe all the users from the session to this course inside the session + // Subscribe all the users from the session to this course inside the session $nbr_users = 0; foreach ($user_list as $enreg_user) { - $enreg_user_id = intval($enreg_user['user_id']); + $enreg_user_id = (int) $enreg_user['user_id']; $sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user (session_id, c_id, user_id, visibility) VALUES ($sessionId, $courseId, $enreg_user_id, $sessionVisibility)"; $result = Database::query($sql); @@ -2722,11 +2722,23 @@ class SessionManager WHERE session_id = $sessionId AND c_id = $courseId"; Database::query($sql); } + + if ($copyCourseTeachersAsCoach) { + $teachers = CourseManager::get_teacher_list_from_course_code($courseInfo['code']); + if (!empty($teachers)) { + foreach ($teachers as $teacher) { + self::updateCoaches( + $sessionId, + $courseId, + [$teacher['user_id']], + false + ); + } + } + } } - $sql = "UPDATE $tbl_session - SET nbr_courses = $nbr_courses - WHERE id = $sessionId"; + $sql = "UPDATE $tbl_session SET nbr_courses = $nbr_courses WHERE id = $sessionId"; Database::query($sql); return true; @@ -2783,9 +2795,9 @@ class SessionManager Database::query($sql); return true; - } else { - return false; } + + return false; } /** diff --git a/main/session/add_courses_to_session.php b/main/session/add_courses_to_session.php index 61d04ecbf7..7f81a44221 100644 --- a/main/session/add_courses_to_session.php +++ b/main/session/add_courses_to_session.php @@ -84,12 +84,14 @@ $courses = $sessions = []; if (isset($_POST['formSent']) && $_POST['formSent']) { $courseList = $_POST['SessionCoursesList']; $copyEvaluation = isset($_POST['copy_evaluation']); + $copyCourseTeachersAsCoach = isset($_POST['import_teachers_as_course_coach']); SessionManager::add_courses_to_session( $sessionId, $courseList, true, - $copyEvaluation + $copyEvaluation, + $copyCourseTeachersAsCoach ); Display::addFlash(Display::return_message(get_lang('Updated'))); @@ -288,6 +290,10 @@ unset($Courses); + '; diff --git a/main/session/resume_session.php b/main/session/resume_session.php index cb36fd8270..af8313aebb 100644 --- a/main/session/resume_session.php +++ b/main/session/resume_session.php @@ -118,6 +118,8 @@ switch ($action) { $_GET['user'] ); } + + Display::addFlash(Display::return_message(get_lang('Updated'))); break; }