diff --git a/app.py b/app.py index 54a38f3..703a524 100644 --- a/app.py +++ b/app.py @@ -439,9 +439,30 @@ def nova_cota(): @require_login @require_permission(Permission.VIEW_CELL_REPORTS) def listar_cotas(): - """Lista todas as cotas""" - cotas = db_session.query(CotaMensal).all() - return render_template("listar_cotas.html", cotas=cotas) + """Rota para listar cotas mensais""" + try: + # Buscar cotas com informações do militante + cotas = db_session.query(CotaMensal)\ + .join(Militante)\ + .order_by(CotaMensal.data_vencimento.desc())\ + .all() + + # Calcular status das cotas + hoje = datetime.now().date() + for cota in cotas: + if cota.pago: + cota.status = 'paga' + elif cota.data_vencimento < hoje: + cota.status = 'atrasada' + else: + cota.status = 'pendente' + + return render_template("listar_cotas.html", cotas=cotas) + + except Exception as e: + app.logger.error(f"Erro ao listar cotas: {str(e)}") + flash("Erro ao carregar lista de cotas. Por favor, tente novamente.", "danger") + return redirect(url_for("home")) # Rota para criar um novo pagamento @app.route("/pagamentos/novo", methods=["GET", "POST"]) diff --git a/templates/listar_cotas.html b/templates/listar_cotas.html index feddf64..7918fa0 100644 --- a/templates/listar_cotas.html +++ b/templates/listar_cotas.html @@ -1,31 +1,318 @@ -{% extends 'base.html' %} +{% extends "base.html" %} -{% block title %}Listar Militantes{% endblock %} +{% block title %}Cotas{% endblock %} {% block content %} -
| ID | -Militante ID | -Valor Antigo | -Valor Novo | -Data de Alteração | -
|---|---|---|---|---|
| {{ cota.id }} | -{{ cota.militante_id }} | -R$ {{ cota.valor_antigo }} | -R$ {{ cota.valor_novo }} | -{{ cota.data_alteracao }} | -
| Militante | +Valor | +Vencimento | +Status | +Ações | +
|---|---|---|---|---|
| {{ cota.militante.nome }} | +R$ {{ "%.2f"|format(cota.valor_novo) }} | +{{ cota.data_vencimento.strftime('%d/%m/%Y') }} | ++ + {{ cota.status.title() }} + + | +
+
+
+
+
+
+
+ |
+