diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index 37d7587fd..703fbc0ef 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -29,7 +29,7 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente, reordernar_materias_ordem, sessao_legislativa_legislatura_ajax, VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente, - VotacaoEmBlocoView,) + VotacaoEmBlocoSimbolicaView,VotacaoEmBlocoNominalView) from .apps import AppConfig @@ -117,10 +117,10 @@ urlpatterns = [ url(r'^sessao/(?P\d+)/votacao_bloco_ordem_dia$', VotacaoEmBlocoOrdemDia.as_view(), name='votacao_bloco_ordemdia'), - # url(r'^sessao/(?P\d+)/votacao_bloco_ordem_dia/votnom$', - # VotacaoNominalView.as_view(), name='votacaobloconomod'), + url(r'^sessao/(?P\d+)/votacao_bloco/votnom$', + VotacaoEmBlocoNominalView.as_view(), name='votacaobloconom'), url(r'^sessao/(?P\d+)/votacao_bloco/votsimb$', - VotacaoEmBlocoView.as_view(), name='votacaoblocosimb'), + VotacaoEmBlocoSimbolicaView.as_view(), name='votacaoblocosimb'), url(r'^sessao/(?P\d+)/votacao_bloco_expediente$', VotacaoEmBlocoExpediente.as_view(), name='votacao_bloco_expediente'), diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index beb3ab19d..f8b0310d8 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -3264,44 +3264,28 @@ class VotacaoEmBlocoOrdemDia(ListView): reverse('sapl.sessao:votacaoblocosimb', kwargs=self.kwargs)) -class VotacaoEmBlocoView(TemplateView): +class VotacaoEmBlocoSimbolicaView(TemplateView): """ - Votação Simbólica e Nominal + Votação Simbólica """ - template_name = 'sessao/votacao/votacao_votacaoembloco.html' + template_name = 'sessao/votacao/votacao_simbolica_bloco.html' logger = logging.getLogger(__name__) - def get_initial(self): - pass - - def get(self, request, *args, **kwargs): - pass - def post(self, request, *args, **kwargs): if not 'context' in locals(): context = {} if 'origem' in request.POST: - tipo_votacao = request.POST.get('tipo_votacao') - if tipo_votacao == '1': - marcadas = request.POST.getlist('marcadas_id_1') - titulo = "Votação Simbólica" - elif tipo_votacao == '2': - marcadas = request.POST.getlist('marcadas_id_2') - titulo = "Votação Nominal" + marcadas = request.POST.getlist('marcadas_id_1') qtde_presentes = PresencaOrdemDia.objects.filter( sessao_plenaria_id=self.kwargs['pk']).count() origem = request.POST['origem'] - # import ipdb; ipdb.set_trace() - - context.update({'tipo_votacao': tipo_votacao, - 'votacao_titulo': titulo, - 'total_presentes': qtde_presentes, + context.update({'total_presentes': qtde_presentes, 'resultado_votacao': TipoResultadoVotacao.objects.all(), 'origem': origem}) if origem == 'ordem': @@ -3332,7 +3316,7 @@ class VotacaoEmBlocoView(TemplateView): if origem == 'ordem': ordens = OrdemDia.objects.filter(id__in=request.POST.getlist('ordens')) - import ipdb; ipdb.set_trace() + for ordem in ordens: try: votacao = RegistroVotacao() @@ -3411,3 +3395,69 @@ class VotacaoEmBlocoView(TemplateView): return reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': pk}) +class VotacaoEmBlocoNominalView(TemplateView): + """ + Votação Nominal + """ + template_name = 'sessao/votacao/votacao_nominal_bloco.html' + logger = logging.getLogger(__name__) + + def post(self, request, *args, **kwargs): + if not 'context' in locals(): + context = {} + + if 'origem' in request.POST: + form = VotacaoNominalForm(request.POST) + + marcadas = request.POST.getlist('marcadas_id_2') + + origem = request.POST['origem'] + + context.update({'resultado_votacao': TipoResultadoVotacao.objects.all(), + 'origem': origem, + 'form': form}) + if origem == 'ordem': + ordens = OrdemDia.objects.filter(id__in=marcadas) + presentes = PresencaOrdemDia.objects.filter( + sessao_plenaria_id=kwargs['pk']) + context.update({'ordens':ordens}) + else: + expedientes = ExpedienteMateria.objects.filter(id__in=marcadas) + presentes = PresencaOrdemDia.objects.filter( + sessao_plenaria_id=kwargs['pk']) + context.update({'expedientes':expedientes}) + total = presentes.count() + import ipdb; ipdb.set_trace() + context.update({'parlamentares':self.get_parlamentares(request)}) + + return self.render_to_response(context) + + def get_parlamentares(self, request): + + if request.POST['origem']=='ordem': + presencas = PresencaOrdemDia.objects.filter( + sessao_plenaria_id=self.kwargs['pk']) + ordens_id = request.POST.getlist('marcadas_id_2') + voto_parlamentar = VotoParlamentar.objects.filter( + ordem=self.kwargs['oid']) #TODO + else: + presencas = PresencaOrdemDia.objects.filter( + sessao_plenaria_id=self.kwargs['pk']) + expedientes_id = request.POST.getlist('marcadas_id_2') + voto_parlamentar = VotoParlamentar.objects.filter( + expediente=self.kwargs['oid']) #TODO + + presentes = [p.parlamentar for p in presencas] + + for parlamentar in Parlamentar.objects.filter(ativo=True): + if parlamentar in presentes: + try: + voto = voto_parlamentar.get( + parlamentar=parlamentar) + except ObjectDoesNotExist: + username = self.request.user.username + self.logger.error('user=' + username + '. Objeto voto_parlamentar do ' + + 'parlamentar de id={} não existe.'.format(parlamentar.pk)) + yield [parlamentar, None] + else: + yield [parlamentar, voto.voto] \ No newline at end of file diff --git a/sapl/templates/sessao/votacao/nominal.html b/sapl/templates/sessao/votacao/nominal.html index 96dd28622..27d95c7a0 100644 --- a/sapl/templates/sessao/votacao/nominal.html +++ b/sapl/templates/sessao/votacao/nominal.html @@ -72,46 +72,46 @@ window.history.back(); } - function conta_votos() { - var votos_sim = 0; - var votos_nao = 0; - var votos_abstencao = 0; - var nao_votou = 0; - $('[name=voto_parlamentar]').each(function() { - if (($(this).is(':hidden')) == false) { - switch ($(this).val().substring(0,4)) { - case "Sim:": - votos_sim = votos_sim + 1; - break; - case "Não:": - votos_nao = votos_nao + 1; - break; - case "Abst": - votos_abstencao = votos_abstencao + 1; - break; - case "Não ": - nao_votou = nao_votou + 1; - break; - }; - }; - }); - - $("#soma_votos").empty(); - $("#soma_votos").append("
Sim: " + votos_sim + "
"); - $("#soma_votos").append("
Não: " + votos_nao + "
"); - $("#soma_votos").append("
Abstenções: " + votos_abstencao + "
"); - $("#soma_votos").append("
Ainda não votaram: " + nao_votou + "
"); - var t = setTimeout(function(){ - conta_votos() - }, 500); - } - conta_votos(); - - window.onload = conta_votos(); + function conta_votos() { + var votos_sim = 0; + var votos_nao = 0; + var votos_abstencao = 0; + var nao_votou = 0; + $('[name=voto_parlamentar]').each(function() { + if (($(this).is(':hidden')) == false) { + switch ($(this).val().substring(0,4)) { + case "Sim:": + votos_sim = votos_sim + 1; + break; + case "Não:": + votos_nao = votos_nao + 1; + break; + case "Abst": + votos_abstencao = votos_abstencao + 1; + break; + case "Não ": + nao_votou = nao_votou + 1; + break; + }; + }; + }); + + $("#soma_votos").empty(); + $("#soma_votos").append("
Sim: " + votos_sim + "
"); + $("#soma_votos").append("
Não: " + votos_nao + "
"); + $("#soma_votos").append("
Abstenções: " + votos_abstencao + "
"); + $("#soma_votos").append("
Ainda não votaram: " + nao_votou + "
"); + var t = setTimeout(function(){ + conta_votos() + }, 500); + } + conta_votos(); + + window.onload = conta_votos(); $(window).on('beforeunload', function () { - $("input[type=submit], input[type=button]").prop("disabled", "disabled"); - }); + $("input[type=submit], input[type=button]").prop("disabled", "disabled"); + }); {% endblock extra_js%} diff --git a/sapl/templates/sessao/votacao/votacao_bloco_expediente.html b/sapl/templates/sessao/votacao/votacao_bloco_expediente.html index f77f6cd3e..98e2ac908 100644 --- a/sapl/templates/sessao/votacao/votacao_bloco_expediente.html +++ b/sapl/templates/sessao/votacao/votacao_bloco_expediente.html @@ -181,6 +181,13 @@ document.getElementById('but_reg').style.display = ''; document.getElementById('nenhum_exp').style.display = 'none'; } + + if(tipo_votacao == "1"){ + $('#form').attr("action", "{% url 'sapl.sessao:votacaoblocosimb' pk %}") + } + else{ + $('#form').attr("action", "{% url 'sapl.sessao:votacaobloconom' pk %}") + } } {% endblock extra_js%} diff --git a/sapl/templates/sessao/votacao/votacao_bloco_ordem.html b/sapl/templates/sessao/votacao/votacao_bloco_ordem.html index 606dc6517..f1e4857d7 100644 --- a/sapl/templates/sessao/votacao/votacao_bloco_ordem.html +++ b/sapl/templates/sessao/votacao/votacao_bloco_ordem.html @@ -24,7 +24,7 @@

-
+ {% csrf_token %}

@@ -125,10 +125,6 @@ {% endblock extra_js%} diff --git a/sapl/templates/sessao/votacao/votacao_nominal_bloco.html b/sapl/templates/sessao/votacao/votacao_nominal_bloco.html new file mode 100644 index 000000000..373df6fd7 --- /dev/null +++ b/sapl/templates/sessao/votacao/votacao_nominal_bloco.html @@ -0,0 +1,130 @@ +{% extends "crud/detail.html" %} +{% load i18n crispy_forms_tags %} + +{% block detail_content %} + + {% csrf_token %} + +
+ Votação Nominal + {% if ordens %} + {% for o in ordens %} +
+ Matéria: {{o.materia}} +
+ Ementa: {{o.materia.ementa|safe}} +
+
+ {% endfor %} + {% else %} + {% for e in expedientes %} +
+ Matéria: {{e.materia}} +
+ Ementa: {{e.materia.ementa|safe}} +
+
+ {% endfor %} + {% endif %} + {% comment %} {% if total == 0 %} + + Voltar + {% else %} {% endcomment %} +
+ + + Votos +
+ {% for parlamentar in parlamentares %} +
{{parlamentar.0.parlamentar.nome_parlamentar}}
+
+ {% if parlamentar.1 %} {% endif %} + +
+ {% endfor %} +
+ + Situação da Votação: + +
+ +
+ + {% comment %}
+
+ {{ form.resultado_votacao|as_crispy_field }} +
+
{% endcomment %} + +
+
+
+ Observações
+ +
+
+ +

+ + +
+ +{% comment %} {% endif %} {% endcomment %} +{% endblock detail_content %} + +{% block extra_js %} + +{% endblock extra_js%} diff --git a/sapl/templates/sessao/votacao/votacao_votacaoembloco.html b/sapl/templates/sessao/votacao/votacao_simbolica_bloco.html similarity index 95% rename from sapl/templates/sessao/votacao/votacao_votacaoembloco.html rename to sapl/templates/sessao/votacao/votacao_simbolica_bloco.html index ca10b3418..cfc3dae59 100644 --- a/sapl/templates/sessao/votacao/votacao_votacaoembloco.html +++ b/sapl/templates/sessao/votacao/votacao_simbolica_bloco.html @@ -6,7 +6,7 @@ {% csrf_token %}
- {{votacao_titulo}} + Votação Simbólica {% if form.errors %}
@@ -26,7 +26,6 @@ {% endif %}
- {% if ordens %} {% for o in ordens %}