|
@ -93,7 +93,7 @@ def votacao_aberta(request): |
|
|
return votacoes_abertas.first(), None |
|
|
return votacoes_abertas.first(), None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def votacao(context,context_vars): |
|
|
def votacao(context, context_vars): |
|
|
logger = logging.getLogger(__name__) |
|
|
logger = logging.getLogger(__name__) |
|
|
parlamentar = context_vars['votante'].parlamentar |
|
|
parlamentar = context_vars['votante'].parlamentar |
|
|
parlamentar_presente = False |
|
|
parlamentar_presente = False |
|
@ -116,11 +116,13 @@ def votacao(context,context_vars): |
|
|
|
|
|
|
|
|
if voto: |
|
|
if voto: |
|
|
try: |
|
|
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']) |
|
|
voto = voto.get(parlamentar=context_vars['parlamentar']) |
|
|
context.update({'voto_parlamentar': voto.voto}) |
|
|
context.update({'voto_parlamentar': voto.voto}) |
|
|
except ObjectDoesNotExist: |
|
|
except ObjectDoesNotExist: |
|
|
logger.error("Voto do parlamentar {} não computado.".format(context_vars['parlamentar'])) |
|
|
logger.error("Voto do parlamentar {} não computado.".format( |
|
|
|
|
|
context_vars['parlamentar'])) |
|
|
context.update( |
|
|
context.update( |
|
|
{'voto_parlamentar': 'Voto não ' |
|
|
{'voto_parlamentar': 'Voto não ' |
|
|
'computado.'}) |
|
|
'computado.'}) |
|
@ -132,7 +134,8 @@ def votacao(context,context_vars): |
|
|
'Ordem do Dia/Expediente em votação.'}) |
|
|
'Ordem do Dia/Expediente em votação.'}) |
|
|
return context, context_vars |
|
|
return context, context_vars |
|
|
|
|
|
|
|
|
def sessao_votacao(context,context_vars): |
|
|
|
|
|
|
|
|
def sessao_votacao(context, context_vars): |
|
|
pk = context_vars['sessao'].pk |
|
|
pk = context_vars['sessao'].pk |
|
|
context.update({'sessao_id': pk}) |
|
|
context.update({'sessao_id': pk}) |
|
|
context.update({'sessao': context_vars['sessao'], |
|
|
context.update({'sessao': context_vars['sessao'], |
|
@ -143,9 +146,9 @@ def sessao_votacao(context,context_vars): |
|
|
presentes = [] |
|
|
presentes = [] |
|
|
ordem_dia = get_materia_aberta(pk) |
|
|
ordem_dia = get_materia_aberta(pk) |
|
|
expediente = get_materia_expediente_aberta(pk) |
|
|
expediente = get_materia_expediente_aberta(pk) |
|
|
errors_msgs = {'materia':'Não há nenhuma matéria aberta.', |
|
|
errors_msgs = {'materia': 'Não há nenhuma matéria aberta.', |
|
|
'registro':'A votação para esta matéria já encerrou.', |
|
|
'registro': 'A votação para esta matéria já encerrou.', |
|
|
'tipo':'A matéria aberta não é do tipo votação nominal.'} |
|
|
'tipo': 'A matéria aberta não é do tipo votação nominal.'} |
|
|
|
|
|
|
|
|
materia_aberta = None |
|
|
materia_aberta = None |
|
|
if ordem_dia: |
|
|
if ordem_dia: |
|
@ -160,7 +163,7 @@ def sessao_votacao(context,context_vars): |
|
|
'parlamentar_id', flat=True).distinct() |
|
|
'parlamentar_id', flat=True).distinct() |
|
|
|
|
|
|
|
|
context_vars.update({'ordem_dia': ordem_dia, |
|
|
context_vars.update({'ordem_dia': ordem_dia, |
|
|
'expediente':expediente, |
|
|
'expediente': expediente, |
|
|
'presentes': presentes}) |
|
|
'presentes': presentes}) |
|
|
|
|
|
|
|
|
# Verifica votação aberta |
|
|
# Verifica votação aberta |
|
@ -188,7 +191,7 @@ def can_vote(context, context_vars, request): |
|
|
|
|
|
|
|
|
# Pega sessão |
|
|
# Pega sessão |
|
|
sessao, msg = votacao_aberta(request) |
|
|
sessao, msg = votacao_aberta(request) |
|
|
context_vars.update({'sessao':sessao}) |
|
|
context_vars.update({'sessao': sessao}) |
|
|
if sessao and not msg: |
|
|
if sessao and not msg: |
|
|
context, context_vars = sessao_votacao(context, context_vars) |
|
|
context, context_vars = sessao_votacao(context, context_vars) |
|
|
elif not sessao and msg: |
|
|
elif not sessao and msg: |
|
@ -209,7 +212,8 @@ def votante_view(request): |
|
|
context_vars = {} |
|
|
context_vars = {} |
|
|
|
|
|
|
|
|
try: |
|
|
try: |
|
|
logger.debug(f'user={username}. Tentando obter objeto Votante com user={request.user}.') |
|
|
logger.debug( |
|
|
|
|
|
f'user={username}. Tentando obter objeto Votante com user={request.user}.') |
|
|
if not request.user.is_anonymous and request.user.is_authenticated: |
|
|
if not request.user.is_anonymous and request.user.is_authenticated: |
|
|
votante = Votante.objects.get(user=request.user) |
|
|
votante = Votante.objects.get(user=request.user) |
|
|
else: |
|
|
else: |
|
@ -227,9 +231,11 @@ def votante_view(request): |
|
|
# Verifica se usuário possui permissão para votar |
|
|
# Verifica se usuário possui permissão para votar |
|
|
if 'parlamentares.can_vote' in request.user.get_all_permissions(): |
|
|
if 'parlamentares.can_vote' in request.user.get_all_permissions(): |
|
|
context, context_vars = can_vote(context, context_vars, request) |
|
|
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)) |
|
|
logger.debug("user=" + username + |
|
|
|
|
|
". Verificando se usuário {} possui permissão para votar.".format(request.user)) |
|
|
else: |
|
|
else: |
|
|
logger.error("user=" + username + ". Usuário {} sem permissão para votar.".format(request.user)) |
|
|
logger.error("user=" + username + |
|
|
|
|
|
". Usuário {} sem permissão para votar.".format(request.user)) |
|
|
context.update({'permissao': False, |
|
|
context.update({'permissao': False, |
|
|
'error_message': 'Usuário sem permissão para votar.'}) |
|
|
'error_message': 'Usuário sem permissão para votar.'}) |
|
|
|
|
|
|
|
@ -294,7 +300,8 @@ def painel_view(request, pk): |
|
|
now = timezone.localtime(timezone.now()) |
|
|
now = timezone.localtime(timezone.now()) |
|
|
utc_offset = now.utcoffset().total_seconds() / 60 |
|
|
utc_offset = now.utcoffset().total_seconds() / 60 |
|
|
|
|
|
|
|
|
context = {'head_title': str(_('Painel Plenário')), 'sessao_id': pk, 'utc_offset': utc_offset } |
|
|
context = {'head_title': str( |
|
|
|
|
|
_('Painel Plenário')), 'sessao_id': pk, 'utc_offset': utc_offset} |
|
|
return render(request, 'painel/index.html', context) |
|
|
return render(request, 'painel/index.html', context) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -348,10 +355,12 @@ def get_cronometro_status(request, name): |
|
|
logger.debug("user=" + username + ". Tentando obter cronometro.") |
|
|
logger.debug("user=" + username + ". Tentando obter cronometro.") |
|
|
cronometro = request.session[name] |
|
|
cronometro = request.session[name] |
|
|
except KeyError as e: |
|
|
except KeyError as e: |
|
|
logger.error("user=" + username + ". Erro ao obter cronometro. Retornado como vazio. " + str(e)) |
|
|
logger.error("user=" + username + |
|
|
|
|
|
". Erro ao obter cronometro. Retornado como vazio. " + str(e)) |
|
|
cronometro = '' |
|
|
cronometro = '' |
|
|
return cronometro |
|
|
return cronometro |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_cronometro_value(request, name): |
|
|
def get_cronometro_value(request, name): |
|
|
if name == 'discurso': |
|
|
if name == 'discurso': |
|
|
result = ConfiguracoesAplicacao.objects.first().cronometro_discurso |
|
|
result = ConfiguracoesAplicacao.objects.first().cronometro_discurso |
|
@ -503,7 +512,8 @@ def get_votos(response, materia): |
|
|
|
|
|
|
|
|
for i, p in enumerate(response['presentes']): |
|
|
for i, p in enumerate(response['presentes']): |
|
|
try: |
|
|
try: |
|
|
logger.info("Tentando obter votos do parlamentar (id={}).".format(p['parlamentar_id'])) |
|
|
logger.info("Tentando obter votos do parlamentar (id={}).".format( |
|
|
|
|
|
p['parlamentar_id'])) |
|
|
if votos_parlamentares.get(parlamentar_id=p['parlamentar_id']).voto: |
|
|
if votos_parlamentares.get(parlamentar_id=p['parlamentar_id']).voto: |
|
|
response['presentes'][i]['voto'] = 'Voto Informado' |
|
|
response['presentes'][i]['voto'] = 'Voto Informado' |
|
|
except ObjectDoesNotExist: |
|
|
except ObjectDoesNotExist: |
|
@ -531,11 +541,13 @@ def get_votos(response, materia): |
|
|
|
|
|
|
|
|
for i, p in enumerate(response['presentes']): |
|
|
for i, p in enumerate(response['presentes']): |
|
|
try: |
|
|
try: |
|
|
logger.debug("Tentando obter votos do parlamentar (id={}).".format(p['parlamentar_id'])) |
|
|
logger.debug("Tentando obter votos do parlamentar (id={}).".format( |
|
|
|
|
|
p['parlamentar_id'])) |
|
|
response['presentes'][i]['voto'] = votos_parlamentares.get( |
|
|
response['presentes'][i]['voto'] = votos_parlamentares.get( |
|
|
parlamentar_id=p['parlamentar_id']).voto |
|
|
parlamentar_id=p['parlamentar_id']).voto |
|
|
except ObjectDoesNotExist: |
|
|
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['presentes'][i]['voto'] = None |
|
|
|
|
|
|
|
|
response.update({ |
|
|
response.update({ |
|
@ -570,6 +582,7 @@ def get_dados_painel(request, pk): |
|
|
'sessao_solene': sessao.tipo.nome == "Solene", |
|
|
'sessao_solene': sessao.tipo.nome == "Solene", |
|
|
'sessao_finalizada': sessao.finalizada, |
|
|
'sessao_finalizada': sessao.finalizada, |
|
|
'tema_solene': sessao.tema_solene, |
|
|
'tema_solene': sessao.tema_solene, |
|
|
|
|
|
'status_cronometro_discurso': get_cronometro_status(request, 'discurso'), |
|
|
'cronometro_aparte': get_cronometro_value(request, 'aparte'), |
|
|
'cronometro_aparte': get_cronometro_value(request, 'aparte'), |
|
|
'cronometro_discurso': get_cronometro_value(request, 'discurso'), |
|
|
'cronometro_discurso': get_cronometro_value(request, 'discurso'), |
|
|
'cronometro_ordem': get_cronometro_value(request, 'ordem'), |
|
|
'cronometro_ordem': get_cronometro_value(request, 'ordem'), |
|
|