Proyecto

General

Perfil

Correccion - Mejora #5505

Actualizado por Oscar Abad hace 4 meses

h1. Especificación 

 Añadir parámetro de configuración para permitir o no mover documentos de proyecto entre espacios. 

 h1. Análisis 

 Posteriormente al despliegue de la funcionalidad habría que ejecutar el siguiente script: 
 <pre><code class="ruby"> 
 # Recorre todos los documentos por espacio 
 contador = 0 
 contador_ko = 0 
 contador_ko2 = 0 
 DocumentoXEspacio.all.each do |dxe| 
   # Obtiene el documento original y su proyecto 
   if docu = dxe.documento 
     # Si el documento esta en mas de un espacio, no hace nada 
     if docu.documento_x_espacio.count > 1 
       solo_un_proyecto = (docu.documento_x_espacio.map{|ddxe| ddxe.espacio.proyecto_del_espacio}.uniq.count == 1) 
       contador_ko += 1 
     else 
       solo_un_proyecto = true 
     end 
     # Si solo esta en un espacio 
     if solo_un_proyecto && (proyecto_espacio = dxe.espacio.proyecto_del_espacio) 
       if docu.proyecto_id != proyecto_espacio.id 
         Rails.logger.info "Se ha movido la referencia del documento #{docu.id} del proyecto #{docu.proyecto_id} al proyecto #{proyecto_espacio.nombre}" 
         docu.update_column :proyecto_id, proyecto_espacio.id 
         contador += 1 
       end 
     else 
       Rails.logger.warn "El documento #{docu.id} esta en mas de un espacio de diferentes proyectos" unless solo_un_proyecto 
     end 
   else 
     Rails.logger.error "ERROR: El documento #{dxe.documento_id} no existe, pero esta referenciado en DXE #{dxe.id}" unless dxe.documento_id.blank? 
     contador_ko2 += 1 unless dxe.documento_id.blank? 
   end 
 end 
 Rails.logger.info "**** Se han corregido #{contador} documentos" 
 Rails.logger.info "**** En más de un espacio #{contador_ko} documentos" 
 Rails.logger.info "**** No existe documento #{contador_ko2} documentos" 
 </code></pre> 


 h1. Implementación

Atrás