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