diff --git a/sapl/painel/views.py b/sapl/painel/views.py index e253d270f..4c3a85baf 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -531,6 +531,13 @@ def get_votos(response, materia): votos_parlamentares = VotoParlamentar.objects.filter( expediente_id=materia.id).order_by( 'parlamentar__nome_parlamentar') + + if PainelConfig.attr('mostrar_votos_antecedencia'): + response['numero_votos_sim'] = votos_parlamentares.filter(voto="Sim").count() + response['numero_votos_nao'] = votos_parlamentares.filter(voto="Não").count() + response['numero_abstencoes'] = votos_parlamentares.filter(voto="Abstenção").count() + response['total_votos'] = response['numero_votos_sim'] + response['numero_votos_nao'] + \ + response['numero_abstencoes'] for i, p in enumerate(response['presentes']): try: diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index 19e5a37e7..328c1da5e 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -34,7 +34,8 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente, VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente, VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView, resumo_ordenacao, - recuperar_nome_tipo_sessao) + recuperar_nome_tipo_sessao, + voto_nominal_parlamentar) from .apps import AppConfig @@ -188,4 +189,9 @@ urlpatterns = [ url(r'^sessao/mudar-ordem-materia-sessao/', mudar_ordem_materia_sessao, name='mudar_ordem_materia_sessao'), + + url(r'^sessao/votacao-nominal-parlamentar/', + voto_nominal_parlamentar, + name='votacao_nominal_parlamentar' + ), ] diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 3cbddee5a..e6f112aab 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -4327,3 +4327,61 @@ class RetiradaPautaCrud(MasterDetailCrud): class DeleteView(MasterDetailCrud.DeleteView): pass + + +def voto_nominal_parlamentar(request): + parlamentar_id = request.GET.get('parlamentar_id') + parlamentar_voto = request.GET.get('parlamentar_voto') + id_ordem_expediente = request.GET.get('id_ordem_expediente') + is_ordemdia = request.GET.get('is_ordemdia') == 'true' + + if is_ordemdia: + # Apaga o voto (opção selecionada: Não Votou) + if parlamentar_voto == "Não ": + VotoParlamentar.objects.filter(ordem_id=id_ordem_expediente, parlamentar_id=parlamentar_id).delete() + else: + # Salva o voto + parlamentar_voto = "Abstenção" if parlamentar_voto == 'Abst' else parlamentar_voto[:3] + try: + voto = VotoParlamentar.objects.get( + parlamentar_id=parlamentar_id, + ordem_id=id_ordem_expediente) + except ObjectDoesNotExist: + voto = VotoParlamentar.objects.create( + parlamentar_id=parlamentar_id, + voto=parlamentar_voto, + user=request.user, + ip=get_client_ip(request), + ordem_id=id_ordem_expediente) + else: + voto.voto = parlamentar_voto + voto.ip = get_client_ip(request) + voto.user = request.user + voto.save() + + # expediente + else: + # Apaga o voto (opção selecionada: Não Votou) + if parlamentar_voto == "Não ": + VotoParlamentar.objects.filter(expediente_id=id_ordem_expediente, parlamentar_id=parlamentar_id).delete() + # Salva o voto + else: + parlamentar_voto = parlamentar_voto[:3] + try: + voto = VotoParlamentar.objects.get( + parlamentar_id=parlamentar_id, + expediente_id=id_ordem_expediente) + except ObjectDoesNotExist: + voto = VotoParlamentar.objects.create( + parlamentar_id=parlamentar_id, + voto=parlamentar_voto, + user=request.user, + ip=get_client_ip(request), + expediente_id=id_ordem_expediente) + else: + voto.voto = parlamentar_voto + voto.ip = get_client_ip(request) + voto.user = request.user + voto.save() + + return JsonResponse({}) \ No newline at end of file diff --git a/sapl/templates/painel/index.html b/sapl/templates/painel/index.html index 0587042d5..3de48acd2 100644 --- a/sapl/templates/painel/index.html +++ b/sapl/templates/painel/index.html @@ -252,7 +252,7 @@ // Parlamentar já votou? if (parlamentar.voto){ // Se a votação já foi finalizada, mostra todos os votos - if (data['tipo_resultado']){ + if (data['tipo_resultado'] && data['tipo_resultado'] != "Ainda não foi votada."){ $('#parlamentares_list').append('