Adding $updateCourseCoaches in the session import default false see BT#7116

1.9.x
Julio Montoya 11 years ago
parent ed43b621a8
commit bf0313a479
  1. 14
      main/admin/session_import.php
  2. 44
      main/inc/lib/sessionmanager.lib.php

@ -49,7 +49,7 @@ if ($_POST['formSent']) {
$form_sent = $_POST['formSent'];
$file_type = $_POST['file_type'];
$send_mail = $_POST['sendMail'] ? 1 : 0;
$isOverwrite = $_POST['overwrite'] ? 1 : 0;
$isOverwrite = $_POST['overwrite'] ? true: false;
$deleteUsersNotInList = isset($_POST['delete_users_not_in_list']) ? true : false;
$sessions = array();
@ -443,7 +443,7 @@ if ($_POST['formSent']) {
}
} else {
// Tthe course does not exist.
// The course does not exist.
$error_message .= get_lang('CourseDoesNotExist').' : '.$course_code.'<br />';
}
}
@ -459,6 +459,7 @@ if ($_POST['formSent']) {
}
} else {
// CSV
$updateCourseCoaches = isset($_POST['update_course_coaches']) ? true : false;
$result = SessionManager::importCSV(
$_FILES['import_file']['tmp_name'],
$isOverwrite,
@ -470,9 +471,12 @@ if ($_POST['formSent']) {
null,
1,
array(),
$deleteUsersNotInList
$deleteUsersNotInList,
$updateCourseCoaches
);
$sessionList = $result['session_list'];
$error_message = $result['error_message'];
$session_counter = $result['session_counter'];
}
@ -488,6 +492,9 @@ if ($_POST['formSent']) {
$warn = substr($warn, 0, -1);
}
if ($session_counter == 1) {
if ($file_type == 'csv') {
$session_id = current($sessionList);
}
header('Location: resume_session.php?id_session='.$session_id.'&warn='.urlencode($warn));
exit;
} else {
@ -527,6 +534,7 @@ $form->addElement('radio', 'file_type', array(null, '<a href="example_session.xm
$form->addElement('checkbox', 'overwrite', null, get_lang('IfSessionExistsUpdate'));
$form->addElement('checkbox', 'delete_users_not_in_list', null, get_lang('DeleteUsersNotInList'));
$form->addElement('checkbox', 'update_course_coaches', null, get_lang('UpdateCourseCoach'));
$form->addElement('checkbox', 'sendMail', null, get_lang('SendMailToUsers'));
$form->addElement('button', 'submit', get_lang('ImportSession'));

@ -2627,7 +2627,7 @@ class SessionManager
/**
* @param string $file
* @param bool $updatesession options:
* @param bool $updateSession options:
* true: if the session exists it will be updated.
* false: if session exists a new session will be created adding a counter session1, session2, etc
* @param int $defaultUserId
@ -2639,6 +2639,8 @@ class SessionManager
* @param int $daysCoachAccessAfterBeginning
* @param int $sessionVisibility
* @param array $fieldsToAvoidUpdate
* @param bool $deleteUsersNotInList
* @param bool $updateCourseCoaches
* @return array
*/
static function importCSV(
@ -2652,7 +2654,8 @@ class SessionManager
$daysCoachAccessAfterBeginning = null,
$sessionVisibility = 1,
$fieldsToAvoidUpdate = array(),
$deleteUsersNotInList = false
$deleteUsersNotInList = false,
$updateCourseCoaches = false
) {
$content = file($file);
@ -2709,6 +2712,7 @@ class SessionManager
}
}
$sessionList = array();
// Looping the sessions.
foreach ($sessions as $enreg) {
$user_counter = 0;
@ -2770,17 +2774,17 @@ class SessionManager
}
// Creating the session.
$sql_session = "INSERT IGNORE INTO $tbl_session SET
$sql = "INSERT IGNORE INTO $tbl_session SET
name = '".$session_name."',
id_coach = '$coach_id',
date_start = '$date_start',
date_end = '$date_end',
visibility = '$visibility',
session_category_id = '$session_category_id',
session_admin_id=".intval($defaultUserId).$extraParameters.$extraSessionParameters;
Database::query($sql_session);
$session_id = Database::insert_id();
session_admin_id = ".intval($defaultUserId).$extraParameters.$extraSessionParameters;
Database::query($sql);
$session_id = Database::insert_id();
if ($debug) {
if ($session_id) {
foreach ($enreg as $key => $value) {
@ -2800,7 +2804,6 @@ class SessionManager
if (isset($extraFields) && !empty($extraFields)) {
$sessionId = self::get_session_id_from_original_id($enreg['extra_'.$extraFieldId], $extraFieldId);
if (empty($sessionId)) {
$my_session_result = false;
} else {
@ -2809,7 +2812,6 @@ class SessionManager
} else {
$my_session_result = self::get_session_by_name($enreg['SessionName']);
}
if ($my_session_result === false) {
// Creating a session.
@ -2884,13 +2886,22 @@ class SessionManager
$sql = "DELETE FROM $tbl_session_course WHERE id_session = '$session_id'";
Database::query($sql);
// Delete session-course-user relation ships *only* for students
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status <> 2";
Database::query($sql);
// Delete session-course-user relationships students and coaches.
if ($updateCourseCoaches) {
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status in ('0', '2')";
Database::query($sql);
} else {
// Delete session-course-user relation ships *only* for students.
$sql = "DELETE FROM $tbl_session_course_user WHERE id_session = '$session_id' AND status <> 2";
Database::query($sql);
}
}
$session_counter++;
}
$sessionList[] = $session_id;
$users = explode('|', $enreg['Users']);
// Adding the relationship "Session - User" for students
@ -2967,19 +2978,18 @@ class SessionManager
$addTeachersToSession = $courseInfo['add_teachers_to_sessions_courses'];
}
// If any coach/user provided for a course use the users array.
if (empty($course_coaches) && empty($course_users)) {
// If any user provided for a course, use the users array.
if (empty($course_users)) {
if (!empty($userList)) {
SessionManager::subscribe_users_to_session_course($userList, $session_id, $course_code);
if ($debug) {
$msg = "Sessions - Adding student list ".implode(', #', $userList)." to course: '$course_code' and session #$session_id";
error_log($msg);
$logger->addInfo($msg);
}
}
}
// Adding coaches to session course user
// Adding coaches to session course user.
if (!empty($course_coaches)) {
$savedCoaches = array();
// only edit if add_teachers_to_sessions_courses is set.
@ -2996,7 +3006,6 @@ class SessionManager
}
foreach ($course_coaches as $course_coach) {
$course_coach = trim($course_coach);
$coach_id = UserManager::get_user_id_from_username($course_coach);
if ($coach_id !== false) {
// Just insert new coaches
@ -3062,7 +3071,8 @@ class SessionManager
}
return array(
'error_message' => $error_message,
'session_counter' => $session_counter
'session_counter' => $session_counter,
'session_list' => $sessionList
);
}

Loading…
Cancel
Save