feat: bolinha de status ativo/inativo clicavel na lista de clientes

This commit is contained in:
Gustavo
2026-08-20 10:51:28 -03:00
parent 0c82170c26
commit 9fbc57b0ad
4 changed files with 103 additions and 0 deletions
+15
View File
@@ -195,6 +195,7 @@ def listar(
primeiro_item = offset + 1 if total > 0 else 0
ultimo_item = min(offset + por_pagina_efetivo, total)
redirecionar_para = request.url.path + (f"?{request.url.query}" if request.url.query else "")
resposta = templates.TemplateResponse(
request,
@@ -207,6 +208,7 @@ def listar(
"primeiro_item": primeiro_item, "ultimo_item": ultimo_item,
"janela_paginas": _janela_paginas(pagina, total_paginas),
"csrf_token": token_do_contexto(request),
"redirecionar_para": redirecionar_para,
},
)
if por_pagina in OPCOES_POR_PAGINA:
@@ -408,3 +410,16 @@ def excluir(cliente_id: int, usuario: str = Depends(exigir_login)):
db_log.registrar(usuario, "excluir", "cliente", str(cliente_id), True)
return _redirect_com_mensagem("/clientes", "Cliente excluído.")
@router.post("/{cliente_id}/alternar-ativo", dependencies=[Depends(exigir_csrf)])
def alternar_ativo(cliente_id: int, redirecionar_para: str = Form(""), usuario: str = Depends(exigir_login)):
destino = redirecionar_para if redirecionar_para.startswith("/clientes") else "/clientes"
alternado = db_clientes.alternar_ativo(cliente_id)
if not alternado:
db_log.registrar(usuario, "alternar_ativo", "cliente", str(cliente_id), False, "cliente não encontrado")
return _redirect_com_mensagem(destino, "Cliente não encontrado.", "danger")
db_log.registrar(usuario, "alternar_ativo", "cliente", str(cliente_id), True)
return _redirect_com_mensagem(destino, "Status do cliente atualizado.")