Repository navigation
feat: ativar/desativar vários agendamentos de uma vez no admin - #1108
Merged
Merged
Conversation
Flow Schedules só tinha dois jeitos de ligar/desligar um agendamento: abrir a página de edição de cada registro, ou chamar a API (set-schedule-active) na mão. Pra algumas linhas de uma vez, nenhum dos dois é prático. - Checkbox editável direto na lista (list_editable), com confirmação via JS antes de enviar — evita clicar sem querer numa linha de produção, e dispensa a necessidade de um segundo clique em "Salvar" (confirma -> já envia; cancela -> volta a caixa sozinha). - Duas ações em lote no dropdown padrão do admin (mesmo padrão do "Alterar ordem das colunas"), pra ativar/desativar várias linhas selecionadas de uma vez. Uma falha (ex. Prefect fora do ar) não aborta o resto do lote — fica registrada no resumo junto com o que deu certo. - A lógica de "Prefect primeiro, depois o banco" — antes duplicada entre o admin e a SetScheduleActiveView — foi extraída pra schedule_actions.apply_schedule_state, usada pelos três caminhos (edição manual, checkbox/ações em lote, API). Testado de ponta a ponta contra Postgres real (Docker local, não só lint): 22 testes passando, incluindo os 5 novos de DisabledFlowScheduleAdminActionsTests. A UI em si (checkbox + confirm + auto-submit) foi testada manualmente no navegador.
3 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto
A página "Flow Schedules" do admin (
DisabledFlowSchedule) só tinha dois jeitos de ligar/desligar um agendamento: abrir a página de edição de cada registro, ou chamar a APIset-schedule-activena mão. Pra agir sobre várias linhas de uma vez, nenhum dos dois é prático.Arquivos alterados
Mudança
Lógica compartilhada, extraída uma vez —
admin.pyeSetScheduleActiveViewduplicavam a sequência "Prefect primeiro, depois o banco". Agora os dois (e os caminhos novos abaixo) chamamschedule_actions.apply_schedule_state(record, active).Checkbox editável na lista (
list_editable), com confirmação via JS antes de enviar:O botão "Salvar" manual do rodapé da lista fica escondido via CSS (ainda existe no DOM — o JS acima clica nele — só não aparece pra ninguém clicar sem passar pela confirmação).
Duas ações em lote no dropdown padrão do admin (mesmo padrão já usado em
reorder_columns):Só toca nas linhas que precisam mudar (
queryset.exclude(is_schedule_active=active)), e uma falha isolada (ex. Prefect fora do ar) não aborta o resto do lote — fica registrada no resumo junto com o que deu certo.Benefícios
apply_schedule_state.Acompanhamento
Registro completo, test plan e os 2 bugs achados testando de verdade (não só lint): #1109.