From 1fc9f7887cd4efd3f80f3fedf1c88b4e10158e62 Mon Sep 17 00:00:00 2001 From: joao Date: Mon, 4 May 2026 17:10:19 -0400 Subject: [PATCH] Corrige polling excessivo em /voto-individual/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adiciona @login_required em votante_view para que usuários anônimos sejam redirecionados ao login em vez de receberem o template com auto-reload. - Corrige bug do relógio: setInterval recursivo dentro de startTime() acumulava timers exponencialmente. Trocado por setTimeout, mantendo apenas um timer pendente. - Move o script de reload/relógio para dentro do bloco {% if not error_message %} para que a variante de erro não agende reloads de 30s. Reduz drasticamente o volume de requisições que disparavam o rate limiter (RATE_LIMITER_RATE=35/m) quando vários parlamentares mantinham a tela aberta atrás do mesmo IP NAT. Co-Authored-By: Claude Opus 4.7 (1M context) --- sapl/painel/views.py | 3 ++- sapl/templates/painel/voto_individual.html | 14 ++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/sapl/painel/views.py b/sapl/painel/views.py index cea4e2870..8d8f2245b 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -3,7 +3,7 @@ import json import logging from django.contrib import messages -from django.contrib.auth.decorators import user_passes_test +from django.contrib.auth.decorators import login_required, user_passes_test from django.core.exceptions import ObjectDoesNotExist from django.urls import reverse from django.db.models import Q @@ -199,6 +199,7 @@ def can_vote(context, context_vars, request): return context, context_vars +@login_required def votante_view(request): logger = logging.getLogger(__name__) username = request.user.username if request.user.is_authenticated else 'AnonymousUser' diff --git a/sapl/templates/painel/voto_individual.html b/sapl/templates/painel/voto_individual.html index c35daa5fa..1dde0990d 100644 --- a/sapl/templates/painel/voto_individual.html +++ b/sapl/templates/painel/voto_individual.html @@ -127,10 +127,11 @@ +{% if not error_message %} {% render_chunk_vendors 'js' %} -{% render_bundle 'global' 'js' %} -{% render_bundle 'painel' 'js' %} - +{% render_bundle 'global' 'js' %} +{% render_bundle 'painel' 'js' %} + +{% endif %}