Correccion - Mejora #5084
cerradaConvertir el cambio de estado de proyecto en una modificación atómica
100%
Descripción
Especificación¶
El cambio de estado del proyecto tiene dos fases:
1) Crea el nuevo estado y lo define como estado actual
2) Modifica el estado anterior quitándole el "estado actual" y añadiendo la información de modificación (usuario y fecha) junto a los comentarios del cambio de estado.
Si se produce un error en el punto segundo el resultado es que el proyecto se queda con dos estados "actuales" dejando inconsistentes los estados y causando un error en los datos del cuadro de mando.
Hay que meter toda la operación de estados en un "Transaction" para evitar que se produzca esa situación y si se detecta un error se genere un rollback y se tire para atrás la creación inicial.
Implementación¶
En el método modificar_estado de estado_controller.rb, controlar mediante transacción los cambios en BD de @estado y @estado_anterior