Browse Source

Merge branch '3.1.x' into painel

pull/3814/head
Heitor 1 week ago
committed by GitHub
parent
commit
2b8bc1db01
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      sapl/api/views_materia.py
  2. 45
      sapl/painel/views.py
  3. 14
      sapl/templates/painel/voto_individual.html

2
sapl/api/views_materia.py

@ -95,7 +95,7 @@ class _MateriaLegislativaViewSet:
_MAX_RETRIES_NUMERO = 3 _MAX_RETRIES_NUMERO = 3
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
data = dict(request.data) data = request.data.copy()
tipo = data.get('tipo', None) tipo = data.get('tipo', None)
numero = data.get('numero', None) numero = data.get('numero', None)
ano = data.get('ano', None) ano = data.get('ano', None)

45
sapl/painel/views.py

@ -3,8 +3,9 @@ import json
import logging import logging
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import user_passes_test from django.contrib.auth.decorators import (login_required, permission_required,
from django.core.exceptions import ObjectDoesNotExist user_passes_test)
from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
from django.urls import reverse from django.urls import reverse
from django.db.models import Q from django.db.models import Q
from django.http import HttpResponse, JsonResponse from django.http import HttpResponse, JsonResponse
@ -200,39 +201,23 @@ def can_vote(context, context_vars, request):
return context, context_vars return context, context_vars
@login_required
@permission_required('parlamentares.can_vote', raise_exception=True)
def votante_view(request): def votante_view(request):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
username = request.user.username if request.user.is_authenticated else 'AnonymousUser' username = request.user.username
# Pega o votante relacionado ao usuário
template_name = 'painel/voto_individual.html'
context = {}
context_vars = {}
try: if not Votante.objects.filter(user=request.user).exists():
logger.debug(f'user={username}. Tentando obter objeto Votante com user={request.user}.') logger.warning(
if not request.user.is_anonymous and request.user.is_authenticated: f'user={username} sem cadastro de Votante tentou acessar /voto-individual/.'
votante = Votante.objects.get(user=request.user) )
else: raise PermissionDenied
raise ObjectDoesNotExist
except ObjectDoesNotExist: template_name = 'painel/voto_individual.html'
logger.error(f"user={username}. Usuário (user={request.user}) não cadastrado como votante na tela de parlamentares. "
"Contate a administração de sua Casa Legislativa!")
msg = _("Usuário não cadastrado como votante na tela de parlamentares. Contate a administração de sua Casa Legislativa!")
context.update({'error_message': msg})
return render(request, template_name, context)
context_vars = {'votante': votante}
context = {'head_title': str(_('Votação Individual'))} context = {'head_title': str(_('Votação Individual'))}
context_vars = {'votante': Votante.objects.get(user=request.user)}
# Verifica se usuário possui permissão para votar context, context_vars = can_vote(context, context_vars, request)
if 'parlamentares.can_vote' in request.user.get_all_permissions():
context, context_vars = can_vote(context, context_vars, request)
logger.debug("user=" + username + ". Verificando se usuário {} possui permissão para votar.".format(request.user))
else:
logger.error("user=" + username + ". Usuário {} sem permissão para votar.".format(request.user))
context.update({'permissao': False,
'error_message': 'Usuário sem permissão para votar.'})
# Salva o voto # Salva o voto
if request.method == 'POST': if request.method == 'POST':

14
sapl/templates/painel/voto_individual.html

@ -127,10 +127,11 @@
</body> </body>
</html> </html>
{% if not error_message %}
{% render_chunk_vendors 'js' %} {% render_chunk_vendors 'js' %}
{% render_bundle 'global' 'js' %} {% render_bundle 'global' 'js' %}
{% render_bundle 'painel' 'js' %} {% render_bundle 'painel' 'js' %}
<script type="text/javascript"> <script type="text/javascript">
$(window).on('beforeunload', function () { $(window).on('beforeunload', function () {
@ -162,7 +163,7 @@
function checkTime(i) { function checkTime(i) {
if (i<10) if (i<10)
i = "0" + i; // add zero in front of numbers < 10 i = "0" + i; // add zero in front of numbers < 10
return i; return i;
} }
@ -174,7 +175,7 @@
m = checkTime(m); m = checkTime(m);
s = checkTime(s); s = checkTime(s);
$("#relogio").text(h+":"+m+":"+s) $("#relogio").text(h+":"+m+":"+s)
var t = setInterval(() => startTime(), 500); var t = setTimeout(() => startTime(), 500);
} }
$(document).ready(function(){ $(document).ready(function(){
@ -183,10 +184,11 @@
$("#date").text(n); $("#date").text(n);
startTime(); startTime();
setTimeout(function() { setTimeout(function() {
document.location.reload(true); document.location.reload(true);
}, 30000) }, 30000)
}); });
</script> </script>
{% endif %}

Loading…
Cancel
Save