more fixes were added see BT#4875

skala
Julio Montoya 13 years ago
parent 5cf1ea0f21
commit e3a5ed8894
  1. 2
      main/inc/lib/extra_field_value.lib.php
  2. 22
      tests/migrate/migration.class.php
  3. 42
      tests/migrate/migration.custom.class.php
  4. 2
      tests/migrate/migration.mssql.class.php

@ -173,8 +173,6 @@ class ExtraFieldValue extends Model {
}
}
public function get_values_by_handler_and_field_variable($item_id, $field_variable, $transform = false) {
$field_id = intval($field_id);
$item_id = Database::escape_string($item_id);

@ -145,9 +145,9 @@ class Migration {
}
//Stop here (only for tests)
// if ($table['orig_table'] == 'Matricula') {
// exit;
// }
if ($table['orig_table'] == 'ProgramaAcademico') {
//exit;
}
}
}
@ -184,7 +184,7 @@ class Migration {
}
$extra_fields_to_insert = array();
foreach ($table['fields_match'] as $id_field => $details) {
foreach ($table['fields_match'] as $id_field => $details) {
if ($id_field == 0) {
$first_field = $details['dest'];
}
@ -225,7 +225,7 @@ class Migration {
if ($key == 'option_value' && $value == $dest_row[$details['dest']]) {
$value = $option['option_display_text'];
if ($field_type == Extrafield::FIELD_TYPE_SELECT) {
$value = $option['option_display_text'];
$value = $option['option_value'];
}
$params = array(
'field_id' => $option['field_id'],
@ -266,7 +266,7 @@ class Migration {
case 'course':
//Saving courses in array
if ($item_result) {
$this->data_list['courses'][$dest_row['uidIdCurso']] = $item_result;
//$this->data_list['courses'][$dest_row['uidIdCurso']] = $item_result;
} else {
error_log('Course Not FOUND');
error_log(print_r($item_result, 1));
@ -279,11 +279,11 @@ class Migration {
$handler_id = $item_result['user_id'];
//error_log($dest_row['email'].' '.$dest_row['uidIdPersona']);
if (isset($dest_row['uidIdAlumno'])) {
$this->data_list['users_alumno'][$dest_row['uidIdAlumno']]['extra'] = $item_result;
//$this->data_list['users_alumno'][$dest_row['uidIdAlumno']]['extra'] = $item_result;
}
if (isset($dest_row['uidIdEmpleado'])) {
//print_r($dest_row['uidIdEmpleado']);exit;
$this->data_list['users_empleado'][$dest_row['uidIdEmpleado']]['extra'] = $item_result;
//$this->data_list['users_empleado'][$dest_row['uidIdEmpleado']]['extra'] = $item_result;
}
} else {
global $api_failureList;
@ -304,11 +304,12 @@ class Migration {
}
}
} else {
$this->errors_stack[] = "No destination data dest_func found. Abandoning data with first field $first_field = " . $dest_row[$first_field];
// $this->errors_stack[] = "No destination data dest_func found. Abandoning data with first field $first_field = " . $dest_row[$first_field];
}
unset($extra_fields_to_insert); //remove to free up memory
return $dest_row;
}
/**
* Helper function to create extra fields in the Chamilo database
* @param Array An array containing an 'extra_fields' entry with details about the required extra fields
@ -325,8 +326,7 @@ class Migration {
$extra_field_id = $extra_field_obj->save($extra_field);
$selected_fields = self::prepare_field_match($options);
//error_log('$selected_fields: ' . print_r($selected_fields, 1));
//Adding options
if (!empty($options)) {
$extra_field_option_obj = new ExtraFieldOption($table['dest_table']);

@ -61,6 +61,7 @@ class MigrationCustom {
return self::clean_utf8($row_data['session_name']);
}
/** @deprecated */
public function log_original_persona_unique_id($data, &$omigrate, $row_data) {
/* Temporarily commented
if (isset($omigrate['users_persona'][$row_data['uidIdPersona']])) {
@ -77,6 +78,7 @@ class MigrationCustom {
return $data;
}
/** @deprecated */
public function log_original_teacher_unique_id($data, &$omigrate, $row_data) {
$row = array('uidIdPersona' => $row_data['uidIdPersona'], 'uidIdEmpleado' => $row_data['uidIdEmpleado']);
$omigrate['users_empleado'][$row_data['uidIdEmpleado']] = $row;
@ -85,6 +87,7 @@ class MigrationCustom {
/**
* Log data from the original users table
@deprecated
*/
public function log_original_course_unique_id($data, &$omigrate) {
$omigrate['courses'][$data] = 0;
@ -93,19 +96,22 @@ class MigrationCustom {
/**
* Log data from the original users table
* @deprecated
*/
public function log_original_session_unique_id($data, &$omigrate, $row_data) {
$omigrate['sessions'][$row_data['uidIdPrograma']] = $row_data;
return $data;
}
public function get_real_course_code($data, &$omigrate, $row_data) {
if (!isset($omigrate['courses'][$data])) {
error_log("Course not found in data_list array");
//error_log(print_r($data, 1));
//exit;
public function get_real_course_code($data, &$omigrate, $row_data) {
$extra_field = new ExtraFieldValue('course');
$values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdCurso', $data);
if ($values) {
return $values['code'];
} else {
error_log("Course not found in DB");
}
return $omigrate['courses'][$data]['code'];
}
function get_session_id_by_programa_id($data, &$omigrate, $row_data) {
@ -120,6 +126,7 @@ class MigrationCustom {
return $omigrate['sessions'][$data];
}
/* Not used */
public function get_user_id($data, &$omigrate, $row_data) {
//error_log('get_real_teacher_id');
//error_log(print_r($data, 1));
@ -138,18 +145,28 @@ class MigrationCustom {
return $omigrate['users_alumno'][$data]['user_id'];
}
public function get_real_teacher_id($data, &$omigrate, $row_data) {
public function get_real_teacher_id($uidIdPersona, &$omigrate, $row_data) {
$default_teacher_id = self::default_admin_id;
//error_log('get_real_teacher_id');
//error_log(print_r($data, 1));
//error_log(print_r($omigrate['users_empleado'], 1));
//error_log('get_real_teacher_id');
//error_log($data);
if (empty($data)) {
if (empty($uidIdPersona)) {
//error_log('No teacher provided');
return $default_teacher_id;
}
$extra_field = new ExtraFieldValue('user');
$values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdPersona', $uidIdPersona);
if ($values) {
return $values['user_id'];
} else {
return $default_teacher_id;
}
/*
if (!isset($omigrate['users_empleado'][$data])) {
//error_log(' Teacher not found big problem! ');
//echo $data;
@ -159,7 +176,7 @@ class MigrationCustom {
} else {
//error_log('Teacher found: '.$omigrate['users_empleado'][$data]['extra']['user_id']);
return isset($omigrate['users_empleado'][$data]['extra']) ? $omigrate['users_empleado'][$data]['extra']['user_id'] : $default_teacher_id;
}
} */
}
/**
@ -279,7 +296,7 @@ class MigrationCustom {
if (!$user_info) {
echo 'error';
}
UserManager::update_extra_field_value($user_info['user_id'],'uidIdPersona',$id_persona);
UserManager::update_extra_field_value($user_info['user_id'], 'uidIdPersona', $id_persona);
return $user_info;
}
/**
@ -321,8 +338,6 @@ class MigrationCustom {
public function add_user_to_session($data) {
//error_log('add_user_to_session');
///print_r($data);
//Search uidIdPrograma
//Search uidIdAlumno
@ -333,8 +348,7 @@ class MigrationCustom {
$user_id = null;
if ($result && $result['session_id']) {
$session_id = $result['session_id'];
$session_id = $result['session_id'];
}
$extra_field_value = new ExtraFieldValue('user');

@ -32,7 +32,7 @@ class MigrationMSSQL extends Migration {
}
//In order to process X item of each table add TOP X
$top = null;
$top = null;
$top = " TOP 1000 ";
if (in_array($table, array('Empleado', 'Alumno'))) {
$top = " TOP 1000 ";

Loading…
Cancel
Save