Proyecto

General

Perfil

Errores #2476

Error 500 al cambiar de estado un proyecto

Añadido por Santiago Ramos hace alrededor de 8 años. Actualizado hace alrededor de 8 años.

Estado:
Resuelta
Prioridad:
Normal
Asignado a:
-
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2016-02-29
Fecha fin:
% Realizado:

0%


Descripción

Al hacer el cambio de estado de un proyecto se produce un error 500:

Processing by EstadoController#modificar_estado as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"4U6hnleUzl0IFDA4efuR3HlQLJbPUbmLrRht7+RrT/8=", "definicion_estado"=>{"id"=>"7"}, "estado"=>{"observacion"=>"Prueba de cambio de estado"}, "seccion"=>"proyectos", "proyecto_id"=>"753", "menu"=>"configuracion"}
Completed 500 Internal Server Error in 25ms

NoMethodError (undefined method `activo' for nil:NilClass):
  app/models/estado.rb:54:in `block in verificar_cierre_proyecto_tareas'
  app/models/estado.rb:54:in `verificar_cierre_proyecto_tareas'
  app/controllers/estado_controller.rb:69:in `modificar_estado'

Histórico

#1 Actualizado por Santiago Ramos hace alrededor de 8 años

El método en cuestión del modelo de "estado" es:

  def verificar_cierre_proyecto_tareas
      if self.estado_actual and self.definicion_estado.cerrado and proyecto.tarea.find{|t| t.estado_tarea.activo}
        errors.add("proyecto", _("No se puede cambiar el proyecto a un estado de tipo cerrado hasta haber cerrado todas las tareas del proyecto."))
      end
    end

Sería bueno una forma un poco más eficiente de encontrar elementos que un "find" recorriendo todas las tareas, pero para solucionar ese error bastaría con evitar "activo" sobre nil. Ahora...

... en el modelo de tareas no se hace validación de que exista estado_tarea asociado. Eso significa que si un proyecto tiene tareas que no tienen estado puede cerrarse, o no debería cerrarse?.

#2 Actualizado por Santiago Ramos hace alrededor de 8 años

Hago la corrección para evitar errores impidiendo que se puede cambiar de estado con tareas sin estado ( r7491 ) y dejo que se cierre el ticket desde Semilla si este es el comportamiento que debería tener (aunque asumo que así es).

#3 Actualizado por Jaime Ortiz hace alrededor de 8 años

Es correcto el comportamiento que planteas. Y es cierto que se deberia comprobar que las tareas tienen estado. De ahi arranca el problema.

Gracias Santi.

#4 Actualizado por Jaime Ortiz hace alrededor de 8 años

  • Estado cambiado Nueva por Resuelta

Exportar a: Atom PDF

Financiado por:

Desarrollado por:
Software libre forjado en: