Fix user course category see BT#10342

1.9.x
Julio 10 years ago
parent 476c6fd1e4
commit febcb9fcdc
  1. 14
      main/cron/import_csv.php
  2. 28
      main/inc/lib/sessionmanager.lib.php

@ -150,7 +150,7 @@ class ImportCsv
'subscribe-static',
'unsubscribe-static'
);
$teacherBackup = array();
foreach ($sections as $section) {
$this->logger->addInfo("-- Import $section --");
@ -162,7 +162,11 @@ class ImportCsv
echo 'File: '.$file.PHP_EOL;
$this->logger->addInfo("Reading file: $file");
$this->$method($file, true);
if ($method == 'importSessions') {
$this->$method($file, true, $teacherBackup);
} else {
$this->$method($file, true);
}
}
}
}
@ -1237,8 +1241,9 @@ class ImportCsv
/**
* @param string $file
* @param bool $moveFile
* @param array $teacherBackup
*/
private function importSessions($file, $moveFile = true)
private function importSessions($file, $moveFile = true, &$teacherBackup = array())
{
$avoid = null;
if (isset($this->conditions['importSessions']) &&
@ -1262,7 +1267,8 @@ class ImportCsv
true, // sessionWithCoursesModifier
true, //$addOriginalCourseTeachersAsCourseSessionCoaches
true, //$removeAllTeachersFromCourse
1 // $showDescription
1, // $showDescription,
$teacherBackup
);
if (!empty($result['error_message'])) {

@ -2068,7 +2068,7 @@ class SessionManager
FROM $tbl_session_rel_user
WHERE
id_session = $sessionId AND
relation_type<>" . SESSION_RELATION_TYPE_RRHH . "";
relation_type<>" . SESSION_RELATION_TYPE_RRHH;
$result = Database::query($sql);
$user_list = Database::store_result($result);
@ -3781,7 +3781,8 @@ class SessionManager
$sessionWithCoursesModifier = false,
$addOriginalCourseTeachersAsCourseSessionCoaches = true,
$removeAllTeachersFromCourse = true,
$showDescription = null
$showDescription = null,
&$teacherBackupList = array()
) {
$content = file($file);
@ -4259,7 +4260,6 @@ class SessionManager
$teacherToAdd = null;
// Only one coach is added.
if ($onlyAddFirstCoachOrTeacher == true) {
foreach ($course_coaches as $course_coach) {
$coach_id = UserManager::get_user_id_from_username($course_coach);
if ($coach_id !== false) {
@ -4307,10 +4307,19 @@ class SessionManager
if (!empty($teacherToAdd)) {
// Deleting all course teachers and adding the only coach as teacher.
$teacherList = CourseManager::get_teacher_list_from_course_code($course_code);
if (!empty($teacherList)) {
foreach ($teacherList as $teacher) {
if (!in_array($teacher['user_id'], $teacherToAdd)) {
$sql = "SELECT * FROM ".Database::get_main_table(TABLE_MAIN_COURSE_USER)."
WHERE
user_id = ".$teacher['user_id']." AND
course_code = '".$course_code."'
";
$result = Database::query($sql);
$userCourseData = Database::fetch_array($result, 'ASSOC');
$teacherBackupList[$teacher['user_id']][$course_code] = $userCourseData;
CourseManager::unsubscribe_user(
$teacher['user_id'],
$course_code
@ -4320,10 +4329,19 @@ class SessionManager
}
foreach ($teacherToAdd as $teacherId) {
$userCourseCategory = '';
if (isset($teacherBackupList[$teacherId]) &&
isset($teacherBackupList[$teacherId][$course_code])
) {
$courseUserData = $teacherBackupList[$teacherId][$course_code];
$userCourseCategory = $courseUserData['user_course_cat'];
}
CourseManager::subscribe_user(
$teacherId,
$course_code,
COURSEMANAGER
COURSEMANAGER,
0,
$userCourseCategory
);
}
}

Loading…
Cancel
Save