Adding unsubscribe user to session/course option see BT#6845 + Fixing course id in query.

1.9.x
Julio Montoya 12 years ago
parent 9963ba929c
commit 9985547a2d
  1. 52
      main/cron/import_csv.php
  2. 2
      main/inc/lib/course.lib.php

@ -95,7 +95,9 @@ class ImportCsv
if ($fileInfo['extension'] == 'csv') {
// teachers_yyyymmdd.csv, courses_yyyymmdd.csv, students_yyyymmdd.csv and sessions_yyyymmdd.csv
$parts = explode('_', $fileInfo['filename']);
$method = 'import'.ucwords($parts[1]);
$preMethod = ucwords($parts[1]);
$preMethod = str_replace('-static', 'Static', $preMethod);
$method = 'import'.$preMethod;
if (method_exists($this, $method)) {
$fileToProcess[$parts[1]][] = array(
@ -105,6 +107,8 @@ class ImportCsv
//$this->$method($path.$fileInfo['basename']);
} else {
echo "Error - This file '$file' can't be processed.".PHP_EOL;
echo "Trying to call $method".PHP_EOL;
echo "The file have to has this format:".PHP_EOL;
echo "prefix_students_ddmmyyyy.csv, prefix_teachers_ddmmyyyy.csv, prefix_courses_ddmmyyyy.csv, prefix_sessions_ddmmyyyy.csv ".PHP_EOL;
exit;
@ -117,7 +121,7 @@ class ImportCsv
exit;
}
$sections = array('students', 'teachers', 'courses', 'sessions');
$sections = array('students', 'teachers', 'courses', 'sessions', 'unsubscribe-static');
$this->prepareImport();
@ -138,6 +142,8 @@ class ImportCsv
}
}
}
}
@ -602,6 +608,48 @@ class ImportCsv
$this->moveFile($file);
}
/**
* @param string $file
*/
private function importUnsubscribeStatic($file)
{
$data = Import::csv_to_array($file);
//$language = $this->defaultLanguage;
if (!empty($data)) {
$this->logger->addInfo(count($data)." records found.");
foreach ($data as $row) {
$chamiloUsername = $row['UserName'];
$chamiloCourseCode = $row['CourseCode'];
$systemSessionId= $row['SessionID'];
$sessionId = SessionManager::get_session_id_from_original_id($systemSessionId, $this->extraFieldIdNameList['session']);
if (empty($sessionId)) {
$this->logger->addError('Session does not exists: '.$systemSessionId);
continue;
}
$courseInfo = api_get_course_info($chamiloCourseCode);
if (empty($courseInfo)) {
$this->logger->addError('Course does not exists: '.$courseInfo);
continue;
}
$userId = Usermanager::get_user_id_from_username($chamiloUsername);
if (empty($userId)) {
$this->logger->addError('User does not exists: '.$chamiloUsername);
continue;
}
CourseManager::unsubscribe_user($userId, $courseInfo['code'], $sessionId);
$this->logger->addError("User '$chamiloUsername' was removed from session: #$sessionId, Course: ".$courseInfo['code']);
}
}
}
private function dumpDatabaseTables()
{
echo 'Dumping tables'.PHP_EOL;

@ -301,7 +301,7 @@ class CourseManager {
if (!empty($session_id)) {
// Delete in table session_rel_course_rel_user
$sql = "DELETE FROM ".Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER)."
WHERE id_session ='".$session_id."' AND course_code = '".Database::escape_string($_SESSION['_course']['id'])."' AND id_user IN ($user_ids)";
WHERE id_session ='".$session_id."' AND course_code = '".Database::escape_string($course_info['code'])."' AND id_user IN ($user_ids)";
Database::query($sql);
foreach ($user_id as $uid) {

Loading…
Cancel
Save