@ -3191,80 +3191,8 @@ function migrateSwitch($fromVersion, $manager, $processFiles = true) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if ($result) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                error_log('Migrations files were executed ('.date('Y-m-d H:i:s').')');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $connection->executeQuery("ALTER TABLE course_category MODIFY COLUMN auth_course_child VARCHAR(40) DEFAULT 'TRUE'");  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                error_log('Fix c_student_publication.post_group_id');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // Fix post_group_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "SELECT * FROM c_student_publication WHERE (post_group_id < > 0 AND post_group_id is not null)";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $result = $statement->fetchAll();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                foreach ($result as $row) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $groupId = $row['post_group_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $courseId = $row['c_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $workIid = $row['iid'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND iid = $groupId";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $count = $statement->rowCount();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if ($count == 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND id = $groupId";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $count = $statement->rowCount();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        if ($count > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $rowGroup = $statement->fetch();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $newGroupId = $rowGroup['iid'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            if ($newGroupId) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $sqlUpdate = "UPDATE c_student_publication   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                              SET post_group_id = $newGroupId   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                              WHERE   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                c_id = $courseId AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                                iid = $workIid  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                              ";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                $connection->executeQuery($sqlUpdate);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                error_log('End - Fix c_student_publication.post_group_id');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // Delete c_student_publication from any session that doesn't exist anymore  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "DELETE FROM c_student_publication   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        WHERE session_id NOT IN (SELECT id FROM session) AND (session_id < > 0 AND session_id is not null)";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                error_log('Fix work documents');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                // Fix work documents that don't have c_item_property value  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "SELECT * FROM c_student_publication WHERE parent_id IS NOT NULL";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $result = $statement->fetchAll();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                foreach ($result as $row) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $groupId = $row['post_group_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $courseId = $row['c_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $sessionId = $row['session_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $workId = $row['id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $itemInfo = api_get_item_property_info(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $courseId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        'work',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $workId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        $sessionId  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $courseInfo = api_get_course_info_by_id($courseId);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    if (empty($itemInfo)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        api_item_property_update(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $courseInfo,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            'work',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $workId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            'visible',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            1,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $groupId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            null,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            null,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            null,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                            $sessionId  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                        );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                error_log('End - Fix work documents');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                fixPostGroupIds($connection);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sql = "UPDATE settings_current SET selected_value = '1.11.0' WHERE variable = 'chamilo_database_version'";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $connection->executeQuery($sql);  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -3288,3 +3216,83 @@ function migrateSwitch($fromVersion, $manager, $processFiles = true) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    return true;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					/**  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 * @param \Doctrine\DBAL\Connection $connection  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					 */  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					function fixPostGroupIds($connection)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					{  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $connection->executeQuery("ALTER TABLE course_category MODIFY COLUMN auth_course_child VARCHAR(40) DEFAULT 'TRUE'");  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    error_log('Fix c_student_publication.post_group_id');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Fix post_group_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $sql = "SELECT * FROM c_student_publication WHERE (post_group_id < > 0 AND post_group_id is not null)";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $result = $statement->fetchAll();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    foreach ($result as $row) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $groupId = $row['post_group_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $courseId = $row['c_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $workIid = $row['iid'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND iid = $groupId";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $count = $statement->rowCount();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if ($count == 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $sql = "SELECT iid from c_group_info WHERE c_id = $courseId AND id = $groupId";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $count = $statement->rowCount();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if ($count > 0) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $rowGroup = $statement->fetch();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $newGroupId = $rowGroup['iid'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                if ($newGroupId) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $sqlUpdate = "UPDATE c_student_publication   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                  SET post_group_id = $newGroupId   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                  WHERE   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    c_id = $courseId AND  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                    iid = $workIid  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                                  ";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    $connection->executeQuery($sqlUpdate);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    error_log('End - Fix c_student_publication.post_group_id');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Delete c_student_publication from any session that doesn't exist anymore  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $sql = "DELETE FROM c_student_publication   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            WHERE session_id NOT IN (SELECT id FROM session) AND (session_id < > 0 AND session_id is not null)";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    error_log('Fix work documents');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Fix work documents that don't have c_item_property value  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $sql = "SELECT * FROM c_student_publication WHERE parent_id IS NOT NULL";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $statement = $connection->executeQuery($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    $result = $statement->fetchAll();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    foreach ($result as $row) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $groupId = $row['post_group_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $courseId = $row['c_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $sessionId = $row['session_id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $workId = $row['id'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $itemInfo = api_get_item_property_info(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $courseId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            'work',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $workId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $sessionId  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $courseInfo = api_get_course_info_by_id($courseId);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (empty($itemInfo)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            api_item_property_update(  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $courseInfo,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                'work',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $workId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                'visible',  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                1,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $groupId,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                null,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                null,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                null,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sessionId  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            );  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    error_log('End - Fix work documents');  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}