diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index ec8eea9f0..8516c891b 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -35,7 +35,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 @@ -193,4 +194,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 f8911a880..a73662ab4 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -4339,3 +4339,61 @@ class RetiradaPautaCrud(MasterDetailCrud): class DeleteView(MasterDetailCrud.DeleteView): pass + + +def voto_nominal_parlamentar(request): + parlamentar_id = request.GET['parlamentar_id'] + parlamentar_voto = request.GET['parlamentar_voto'] + id_ordem_expediente = request.GET['id_ordem_expediente'] + is_ordemdia = request.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/voto_nominal.html b/sapl/templates/painel/voto_nominal.html index ecd915c25..c05844156 100644 --- a/sapl/templates/painel/voto_nominal.html +++ b/sapl/templates/painel/voto_nominal.html @@ -92,11 +92,11 @@ {% csrf_token %}