|
|
|
@ -13,6 +13,7 @@ from django.http.response import Http404, HttpResponseRedirect |
|
|
|
from django.shortcuts import render |
|
|
|
from django.utils import timezone |
|
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
from django.views.decorators.cache import never_cache |
|
|
|
|
|
|
|
from sapl.base.models import AppConfig as ConfiguracoesAplicacao |
|
|
|
from sapl.base.models import CasaLegislativa |
|
|
|
@ -117,7 +118,8 @@ def votacao(context, context_vars): |
|
|
|
|
|
|
|
if voto: |
|
|
|
try: |
|
|
|
logger.debug("Tentando obter objeto VotoParlamentar com parlamentar={}.".format(context_vars['parlamentar'])) |
|
|
|
logger.debug( |
|
|
|
"Tentando obter objeto VotoParlamentar com parlamentar={}.".format(context_vars['parlamentar'])) |
|
|
|
voto = voto.get(parlamentar=context_vars['parlamentar']) |
|
|
|
context.update({'voto_parlamentar': voto.voto}) |
|
|
|
except ObjectDoesNotExist: |
|
|
|
@ -133,7 +135,24 @@ def votacao(context, context_vars): |
|
|
|
'Ordem do Dia/Expediente em votação.'}) |
|
|
|
return context, context_vars |
|
|
|
|
|
|
|
def sessao_votacao(context,context_vars): |
|
|
|
|
|
|
|
@never_cache |
|
|
|
@user_passes_test(check_permission) |
|
|
|
def painel_view(request, pk): |
|
|
|
utc_now = timezone.now() |
|
|
|
local_now = timezone.localtime(utc_now) |
|
|
|
utc_offset = int(local_now.utcoffset().total_seconds() / 60) |
|
|
|
server_epoch_ms = int(utc_now.timestamp() * 1000) |
|
|
|
|
|
|
|
context = {'head_title': str(_('Painel Plenário')), |
|
|
|
'sessao_id': pk, |
|
|
|
'server_epoch_ms': server_epoch_ms, |
|
|
|
'utc_offset': utc_offset, |
|
|
|
} |
|
|
|
return render(request, 'painel/index.html', context) |
|
|
|
|
|
|
|
|
|
|
|
def sessao_votacao(context, context_vars): |
|
|
|
pk = context_vars['sessao'].pk |
|
|
|
context.update({'sessao_id': pk}) |
|
|
|
context.update({'sessao': context_vars['sessao'], |
|
|
|
@ -144,9 +163,9 @@ def sessao_votacao(context,context_vars): |
|
|
|
presentes = [] |
|
|
|
ordem_dia = get_materia_aberta(pk) |
|
|
|
expediente = get_materia_expediente_aberta(pk) |
|
|
|
errors_msgs = {'materia':'Não há nenhuma matéria aberta.', |
|
|
|
'registro':'A votação para esta matéria já encerrou.', |
|
|
|
'tipo':'A matéria aberta não é do tipo votação nominal.'} |
|
|
|
errors_msgs = {'materia': 'Não há nenhuma matéria aberta.', |
|
|
|
'registro': 'A votação para esta matéria já encerrou.', |
|
|
|
'tipo': 'A matéria aberta não é do tipo votação nominal.'} |
|
|
|
|
|
|
|
materia_aberta = None |
|
|
|
if ordem_dia: |
|
|
|
@ -161,7 +180,7 @@ def sessao_votacao(context,context_vars): |
|
|
|
'parlamentar_id', flat=True).distinct() |
|
|
|
|
|
|
|
context_vars.update({'ordem_dia': ordem_dia, |
|
|
|
'expediente':expediente, |
|
|
|
'expediente': expediente, |
|
|
|
'presentes': presentes}) |
|
|
|
|
|
|
|
# Verifica votação aberta |
|
|
|
@ -189,7 +208,7 @@ def can_vote(context, context_vars, request): |
|
|
|
|
|
|
|
# Pega sessão |
|
|
|
sessao, msg = votacao_aberta(request) |
|
|
|
context_vars.update({'sessao':sessao}) |
|
|
|
context_vars.update({'sessao': sessao}) |
|
|
|
if sessao and not msg: |
|
|
|
context, context_vars = sessao_votacao(context, context_vars) |
|
|
|
elif not sessao and msg: |
|
|
|
@ -248,13 +267,15 @@ def votante_view(request): |
|
|
|
|
|
|
|
elif context_vars['expediente']: |
|
|
|
try: |
|
|
|
logger.info("user=" + username + ". Tentando obter objeto VotoParlamentar para parlamentar={} e expediente={}." |
|
|
|
logger.info( |
|
|
|
"user=" + username + ". Tentando obter objeto VotoParlamentar para parlamentar={} e expediente={}." |
|
|
|
.format(context_vars['parlamentar'], context_vars['expediente'])) |
|
|
|
voto = VotoParlamentar.objects.get( |
|
|
|
parlamentar=context_vars['parlamentar'], |
|
|
|
expediente=context_vars['expediente']) |
|
|
|
except ObjectDoesNotExist: |
|
|
|
logger.error("user=" + username + ". Erro ao obter VotoParlamentar para parlamentar={} e expediente={}. Criando objeto." |
|
|
|
logger.error( |
|
|
|
"user=" + username + ". Erro ao obter VotoParlamentar para parlamentar={} e expediente={}. Criando objeto." |
|
|
|
.format(context_vars['parlamentar'], context_vars['expediente'])) |
|
|
|
voto = VotoParlamentar.objects.create( |
|
|
|
parlamentar=context_vars['parlamentar'], |
|
|
|
@ -263,7 +284,8 @@ def votante_view(request): |
|
|
|
ip=get_client_ip(request), |
|
|
|
expediente=context_vars['expediente']) |
|
|
|
else: |
|
|
|
logger.info("user=" + username + ". VotoParlamentar para parlamentar={} e expediente={} obtido com sucesso." |
|
|
|
logger.info( |
|
|
|
"user=" + username + ". VotoParlamentar para parlamentar={} e expediente={} obtido com sucesso." |
|
|
|
.format(context_vars['parlamentar'], context_vars['expediente'])) |
|
|
|
voto.voto = request.POST['voto'] |
|
|
|
voto.ip = get_client_ip(request) |
|
|
|
@ -276,15 +298,6 @@ def votante_view(request): |
|
|
|
return render(request, template_name, context) |
|
|
|
|
|
|
|
|
|
|
|
@user_passes_test(check_permission) |
|
|
|
def painel_view(request, pk): |
|
|
|
now = timezone.localtime(timezone.now()) |
|
|
|
utc_offset = now.utcoffset().total_seconds() / 60 |
|
|
|
|
|
|
|
context = {'head_title': str(_('Painel Plenário')), 'sessao_id': pk, 'utc_offset': utc_offset } |
|
|
|
return render(request, 'painel/index.html', context) |
|
|
|
|
|
|
|
|
|
|
|
@user_passes_test(check_permission) |
|
|
|
def switch_painel(request): |
|
|
|
sessao = SessaoPlenaria.objects.get(id=request.POST['pk_sessao']) |
|
|
|
@ -361,7 +374,6 @@ def get_presentes(pk, response, materia): |
|
|
|
|
|
|
|
oradores_list = [] |
|
|
|
for o in oradores: |
|
|
|
|
|
|
|
oradores_list.append( |
|
|
|
{ |
|
|
|
'nome': o.parlamentar.nome_parlamentar, |
|
|
|
@ -515,7 +527,8 @@ def get_votos(response, materia, mostrar_voto): |
|
|
|
response['presentes'][i]['voto'] = votos_parlamentares.get( |
|
|
|
parlamentar_id=p['parlamentar_id']).voto |
|
|
|
except ObjectDoesNotExist: |
|
|
|
logger.error("Votos do parlamentar (id={}) não encontrados. Retornado None.".format(p['parlamentar_id'])) |
|
|
|
logger.error( |
|
|
|
"Votos do parlamentar (id={}) não encontrados. Retornado None.".format(p['parlamentar_id'])) |
|
|
|
response['presentes'][i]['voto'] = None |
|
|
|
|
|
|
|
response.update({ |
|
|
|
|