Proyecto

General

Perfil

Acciones

Correccion - Mejora #5505

cerrada

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

Añadido por Oscar Abad hace 8 días. Actualizado hace 5 días.

Estado:
Resuelta
Prioridad:
Normal
Asignado a:
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2024-07-19
Fecha fin:
% Realizado:

100%

Tiempo estimado:
Version:

Descripción

Especificación

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

Análisis

ES POSIBLE QUE LA RAIZ DEL PROBLEMA SEA QUE AL TENER 2 PESTAÑAS CON 2 PROYECTOS DIFERENTES EN LA OPCIÓN DE MENÚ Documentos >> Documentos por espacios, NO COINCIDA EL PROYECTO SELECCIONADO CON EL QUE APARECE COMO ESPACIO:

Y DE ESTA FORMA AL INTENTAR AÑADIR UN DOCUMENTO LO HACE SOBRE UN ESPACIO QUE NO CORRESPONDE:

La solución vendría a partir de las variables de sesión donde se indica el espacio de documentos tanto para proyectos como para agentes, donde se debería añadir también el identificador de proyecto o de agente que corresponda:

    @espacio_id = session["espacio_proyecto_seleccionado_#{params[:proyecto_id]}"] if params[:seccion] == 'proyectos'
    @espacio_id = session["espacio_agente_seleccionado_#{params[:agente_id]}"] if params[:seccion] == 'agentes'

Para ver el número de documentos afectados que ejecutar el siguiente script [rails runner script.rb > res_script.txt]:

# 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
        puts "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
      puts "El documento #{docu.id} esta en mas de un espacio de diferentes proyectos" unless solo_un_proyecto
    end
  else
    puts "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
puts "**** Se han corregido #{contador} documentos" 
puts "**** En más de un espacio #{contador_ko} documentos" 
puts "**** No existe documento #{contador_ko2} documentos" 

Implementación

https://git.semillasl.com/gong/gor/-/commit/824b3fb9af2663eaba47d76c0f153e98712d24a1
https://git.semillasl.com/gong/gor/-/commit/212a23cb531a0c804e46bd33cdcd7ff0c2b759b6
https://git.semillasl.com/gong/gor/-/commit/212a23cb531a0c804e46bd33cdcd7ff0c2b759b6


Ficheros

Acciones

Exportar a: Atom PDF