Browse Source

inicio da votacao nominal em bloco

pull/2416/head
Cesar Carvalho 7 years ago
parent
commit
26e9ecb152
  1. 8
      sapl/sessao/urls.py
  2. 94
      sapl/sessao/views.py
  3. 76
      sapl/templates/sessao/votacao/nominal.html
  4. 7
      sapl/templates/sessao/votacao/votacao_bloco_expediente.html
  5. 13
      sapl/templates/sessao/votacao/votacao_bloco_ordem.html
  6. 130
      sapl/templates/sessao/votacao/votacao_nominal_bloco.html
  7. 3
      sapl/templates/sessao/votacao/votacao_simbolica_bloco.html

8
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<pk>\d+)/votacao_bloco_ordem_dia$',
VotacaoEmBlocoOrdemDia.as_view(),
name='votacao_bloco_ordemdia'),
# url(r'^sessao/(?P<pk>\d+)/votacao_bloco_ordem_dia/votnom$',
# VotacaoNominalView.as_view(), name='votacaobloconomod'),
url(r'^sessao/(?P<pk>\d+)/votacao_bloco/votnom$',
VotacaoEmBlocoNominalView.as_view(), name='votacaobloconom'),
url(r'^sessao/(?P<pk>\d+)/votacao_bloco/votsimb$',
VotacaoEmBlocoView.as_view(), name='votacaoblocosimb'),
VotacaoEmBlocoSimbolicaView.as_view(), name='votacaoblocosimb'),
url(r'^sessao/(?P<pk>\d+)/votacao_bloco_expediente$',
VotacaoEmBlocoExpediente.as_view(),
name='votacao_bloco_expediente'),

94
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]

76
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("<div class='row'><div class='col-md-12'>Sim: " + votos_sim + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Não: " + votos_nao + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Abstenções: " + votos_abstencao + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Ainda não votaram: " + nao_votou + "</div></div>");
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("<div class='row'><div class='col-md-12'>Sim: " + votos_sim + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Não: " + votos_nao + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Abstenções: " + votos_abstencao + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Ainda não votaram: " + nao_votou + "</div></div>");
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");
});
</script>
{% endblock extra_js%}

7
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 %}")
}
}
</script>
{% endblock extra_js%}

13
sapl/templates/sessao/votacao/votacao_bloco_ordem.html

@ -24,7 +24,7 @@
<p></p>
<form method="POST" enctype="application/x-www-form-urlencoded" action="{% url 'sapl.sessao:votacaoblocosimb' pk %}">
<form method="POST" enctype="application/x-www-form-urlencoded" id="form" action="{% url 'sapl.sessao:votacaoblocosimb' pk %}">
{% csrf_token %}
<br><br>
<table class="table table-striped table-bordered">
@ -125,10 +125,6 @@
<script language="JavaScript">
function checkAll(ele) {
/* $('[name=ordem_id_1]').each(function() {
$(this).prop('unchecked', event.target.checked ? 'checked': null);
$(this).trigger('click');
}); */
let checkboxes = document.getElementsByName('marcadas_id_1');
if (ele.checked) {
for (let i = 0; i < checkboxes.length; i++) {
@ -186,6 +182,13 @@
document.getElementById('but_reg').style.display = '';
document.getElementById('nenhuma_ordem').style.display = 'none';
}
if(tipo_votacao == "1"){
$('#form').attr("action", "{% url 'sapl.sessao:votacaoblocosimb' pk %}")
}
else{
$('#form').attr("action", "{% url 'sapl.sessao:votacaobloconom' pk %}")
}
}
</script>
{% endblock extra_js%}

130
sapl/templates/sessao/votacao/votacao_nominal_bloco.html

@ -0,0 +1,130 @@
{% extends "crud/detail.html" %}
{% load i18n crispy_forms_tags %}
{% block detail_content %}
<form method="post">
{% csrf_token %}
<fieldset>
<legend>Votação Nominal</legend>
{% if ordens %}
{% for o in ordens %}
<div>
Matéria: {{o.materia}}
<br />
Ementa: {{o.materia.ementa|safe}}
</div>
<br />
{% endfor %}
{% else %}
{% for e in expedientes %}
<div>
Matéria: {{e.materia}}
<br />
Ementa: {{e.materia.ementa|safe}}
</div>
<br />
{% endfor %}
{% endif %}
{% comment %} {% if total == 0 %}
<div class="alert alert-info alert-dismissible fade in" role="alert">
<div>Não existe nenhum parlamentar presente para que a votação ocorra.</div>
</div>
<a href="{% url 'sapl.sessao:sessaoplenaria_detail' object.pk %}" class="btn btn-warning">Voltar</a>
{% else %} {% endcomment %}
<fieldset class="form-group">
<legend>Votos</legend>
<div class="row">
{% for parlamentar in parlamentares %}
<div class="col-md-4" id="styleparlamentar">{{parlamentar.0.parlamentar.nome_parlamentar}}</div>
<div class="col-md-5">
{% if parlamentar.1 %} <input type="hidden" name="voto_parlamentar" value="{{parlamentar.1}}:{{parlamentar.0.parlamentar.id}}" /> {% endif %}
<select id="voto_parlamentar" name="voto_parlamentar" class="form-control" {% if parlamentar.1 %} disabled {% endif %}>
<option value="Não Votou:{{parlamentar.0.parlamentar.id}}">Não Votou</option>
<option value="Sim:{{parlamentar.0.parlamentar.id}}" {% if parlamentar.1 == 'Sim' %} selected {% endif %}>Sim</option>
<option value="Não:{{parlamentar.0.parlamentar.id}}" {% if parlamentar.1 == 'Não' %} selected {% endif %}>Não</option>
<option value="Abstenção:{{parlamentar.0.parlamentar.id}}" {% if parlamentar.1 == 'Abstenção' %} selected {% endif %}>Abstenção</option>
</select>
</div>
{% endfor %}
</div>
<legend>Situação da Votação:</legend>
<div id="soma_votos"></div>
</fieldset>
{% comment %} <div class="row">
<div class="col-md-12">
{{ form.resultado_votacao|as_crispy_field }}
</div>
</div> {% endcomment %}
<br />
<div class="row">
<div class="col-md-12">
Observações<br/>
<textarea id="observacao" name="observacao" style="width:100%;" rows="7"></textarea>
</div>
</div>
<br /><br />
<input type="submit" id="salvar-votacao" name="salvar-votacao" value="Fechar Votação" class="btn btn-primary" />
<input type="submit" id="cancelar-votacao" name="cancelar-votacao" value="Cancelar Votação" class="btn btn-warning" />
</fieldset>
</form>
{% comment %} {% endif %} {% endcomment %}
{% endblock detail_content %}
{% block extra_js %}
<script>
function voltar() {
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("<div class='row'><div class='col-md-12'>Sim: " + votos_sim + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Não: " + votos_nao + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Abstenções: " + votos_abstencao + "</div></div>");
$("#soma_votos").append("<div class='row'><div class='col-md-12'>Ainda não votaram: " + nao_votou + "</div></div>");
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");
});
</script>
{% endblock extra_js%}

3
sapl/templates/sessao/votacao/votacao_votacaoembloco.html → sapl/templates/sessao/votacao/votacao_simbolica_bloco.html

@ -6,7 +6,7 @@
{% csrf_token %}
<fieldset class="form-group">
<legend>{{votacao_titulo}}</legend>
<legend>Votação Simbólica</legend>
{% if form.errors %}
<div class="alert-box alert">
@ -26,7 +26,6 @@
{% endif %}
<div>
<input type="hidden" id="tipo_votacao" name="tipo_votacao" value="{{tipo_votacao}}">
{% if ordens %}
{% for o in ordens %}
<input type="hidden" id="ordens" name="ordens" value="{{o.id}}">
Loading…
Cancel
Save