refactor: melhorias na UI - formulário de pagamento e cards
This commit is contained in:
55
app.py
55
app.py
@@ -447,6 +447,7 @@ def listar_cotas():
|
||||
@app.route("/pagamentos/novo", methods=["GET", "POST"])
|
||||
@require_login
|
||||
def novo_pagamento():
|
||||
"""Rota para criar um novo pagamento"""
|
||||
user = current_user
|
||||
|
||||
# Verificar se o usuário tem permissão para registrar pagamentos em alguma instância
|
||||
@@ -458,24 +459,46 @@ def novo_pagamento():
|
||||
return redirect(url_for('home'))
|
||||
|
||||
if request.method == "POST":
|
||||
pagamentos = Pagamento(
|
||||
militante_id=request.form["militante_id"],
|
||||
tipo_pagamento_id=request.form["tipo_pagamento_id"],
|
||||
valor=request.form["valor"],
|
||||
data_pagamento=datetime.strptime(request.form["data_pagamento"], "%Y-%m-%d")
|
||||
)
|
||||
|
||||
db_session.add(pagamentos)
|
||||
try:
|
||||
db_session.commit()
|
||||
return redirect(url_for("listar_pagamentos"))
|
||||
except Exception as e:
|
||||
print(e)
|
||||
db_session.rollback()
|
||||
flash('Erro ao cadastrar pagamento. Verifique se os dados fornecidos são válidos.', 'error')
|
||||
return render_template("novo_pagamento.html")
|
||||
militante_id = request.form.get("militante_id")
|
||||
tipo_pagamento_id = request.form.get("tipo_pagamento_id")
|
||||
valor = request.form.get("valor")
|
||||
data_pagamento = request.form.get("data_pagamento")
|
||||
|
||||
return render_template("novo_pagamento.html")
|
||||
# Validações
|
||||
if not all([militante_id, tipo_pagamento_id, valor, data_pagamento]):
|
||||
flash("Todos os campos são obrigatórios.", "danger")
|
||||
return redirect(url_for("novo_pagamento"))
|
||||
|
||||
# Criar novo pagamento
|
||||
pagamento = Pagamento(
|
||||
militante_id=militante_id,
|
||||
tipo_pagamento_id=tipo_pagamento_id,
|
||||
valor=float(valor),
|
||||
data_pagamento=datetime.strptime(data_pagamento, "%Y-%m-%d")
|
||||
)
|
||||
|
||||
db_session.add(pagamento)
|
||||
db_session.commit()
|
||||
|
||||
flash("Pagamento registrado com sucesso!", "success")
|
||||
return redirect(url_for("listar_pagamentos"))
|
||||
|
||||
except Exception as e:
|
||||
db_session.rollback()
|
||||
app.logger.error(f"Erro ao registrar pagamento: {str(e)}")
|
||||
flash("Erro ao registrar pagamento. Por favor, tente novamente.", "danger")
|
||||
return redirect(url_for("novo_pagamento"))
|
||||
|
||||
# GET - Renderizar formulário
|
||||
militantes = db_session.query(Militante).order_by(Militante.nome).all()
|
||||
tipos_pagamento = db_session.query(TipoPagamento).order_by(TipoPagamento.descricao).all()
|
||||
hoje = datetime.now().strftime("%Y-%m-%d")
|
||||
|
||||
return render_template("novo_pagamento.html",
|
||||
militantes=militantes,
|
||||
tipos_pagamento=tipos_pagamento,
|
||||
hoje=hoje)
|
||||
|
||||
# Rota para listar pagamentos
|
||||
@app.route("/pagamentos")
|
||||
|
||||
Reference in New Issue
Block a user