feat: automatizar mudança de steps
Descrição do Merge Request
Este merge request implementa o gerenciamento automatizado de etapas de processos participativos no Decidim. Atualmente, a ativação e desativação das etapas precisam ser feitas manualmente pelos administradores. Com as alterações propostas, esse processo será automatizado através de um cronjob.
Problema inicial
Administradores precisavam atualizar manualmente o status das etapas de processos participativos conforme as datas mudavam. Isso era um processo tedioso e propenso a erros. #298
Solução
A solução implementada automatiza completamente o gerenciamento das etapas ativas de um processo participativo:
- Adicionada a classe
ChangeActiveStepJob
que é executada periodicamente para verificar quais etapas devem estar ativas com base na data atual. - Implementada lógica na classe
ParticipatoryProcessStep
para definir automaticamente a posição da etapa dentro do processo. - Adicionados métodos para enfileirar e limpar tarefas agendadas no sidekiq relacionadas à mudança de etapas ativas.
Núcleo da implementação
-
Classe
ChangeActiveStepJob
- Principal responsável por verificar e atualizar quais etapas devem estar ativas em cada processo participativo.
-
Classe
ParticipatoryProcessStep
- Implementa lógica para definir automaticamente a posição da etapa.
- Adiciona métodos para enfileirar e limpar tarefas agendadas relacionadas à mudança de etapas ativas.
Também foi trazido de volta codigo relacionado a exportação de cpf nas enquetes, código que acabou faltando após uma refatoração anterior
Issue referenciada
Edited by Geovane Freitas