Ver código fonte

more fixes were added see BT#4875

Julio Montoya 12 anos atrás
pai
commit
e3a5ed8894

+ 0 - 2
main/inc/lib/extra_field_value.lib.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);

+ 11 - 11
tests/migrate/migration.class.php

@@ -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']);

+ 28 - 14
tests/migrate/migration.custom.class.php

@@ -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');

+ 1 - 1
tests/migrate/migration.mssql.class.php

@@ -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 ";