Browse Source

Fix #1556

pull/2883/head
Cesar Carvalho 7 years ago
parent
commit
e1472ae4f7
  1. 8
      sapl/sessao/urls.py
  2. 58
      sapl/sessao/views.py
  3. 6
      sapl/templates/painel/voto_nominal.html
  4. 35
      sapl/templates/sessao/votacao/nominal.html

8
sapl/sessao/urls.py

@ -35,7 +35,8 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente,
VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente, VotacaoEmBlocoOrdemDia, VotacaoEmBlocoExpediente,
VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView, VotacaoEmBlocoSimbolicaView, VotacaoEmBlocoNominalView,
resumo_ordenacao, resumo_ordenacao,
recuperar_nome_tipo_sessao) recuperar_nome_tipo_sessao,
voto_nominal_parlamentar)
from .apps import AppConfig from .apps import AppConfig
@ -193,4 +194,9 @@ urlpatterns = [
url(r'^sessao/mudar-ordem-materia-sessao/', url(r'^sessao/mudar-ordem-materia-sessao/',
mudar_ordem_materia_sessao, mudar_ordem_materia_sessao,
name='mudar_ordem_materia_sessao'), name='mudar_ordem_materia_sessao'),
url(r'^sessao/votacao-nominal-parlamentar/',
voto_nominal_parlamentar,
name='votacao_nominal_parlamentar'
),
] ]

58
sapl/sessao/views.py

@ -4339,3 +4339,61 @@ class RetiradaPautaCrud(MasterDetailCrud):
class DeleteView(MasterDetailCrud.DeleteView): class DeleteView(MasterDetailCrud.DeleteView):
pass 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({})

6
sapl/templates/painel/voto_nominal.html

@ -92,11 +92,11 @@
{% csrf_token %} {% csrf_token %}
<div class="row" align="center"> <div class="row" align="center">
<div class="col-md-12" id="votos"> <div class="col-md-12" id="votos">
<div id="votosim"><input type="submit" class="btn btn-lg btn-success" id="voto" name="voto" type="submit" value="Sim" /></div> <div id="votosim"><input type="submit" class="btn btn-lg btn-success" name="voto" type="submit" value="Sim" /></div>
&nbsp; &nbsp;
<div id="votonao"><input type="submit" class="btn btn-lg btn-danger" id="voto" name="voto" type="submit" value="Não"/></div> <div id="votonao"><input type="submit" class="btn btn-lg btn-danger" name="voto" type="submit" value="Não"/></div>
&nbsp; &nbsp;
<div id="votoabstencao"><input type="submit" class="btn btn-lg btn-secondary" id="voto" name="voto" type="submit" value="Abstenção"/></div> <div id="votoabstencao"><input type="submit" class="btn btn-lg btn-secondary" name="voto" type="submit" value="Abstenção"/></div>
</div> </div>
</div> </div>
</br> </br>

35
sapl/templates/sessao/votacao/nominal.html

@ -21,14 +21,13 @@
{% else %} {% else %}
<fieldset class="form-group"> <fieldset class="form-group">
<legend>Votos</legend> <legend>Votos</legend>
<div class="row"> <div class="row">
{% for parlamentar in parlamentares %} {% for parlamentar in parlamentares %}
<div class="col-md-4" id="styleparlamentar">{{parlamentar.0.nome_parlamentar}}</div> <div class="col-md-4" id="styleparlamentar">{{parlamentar.0.nome_parlamentar}}</div>
<div class="col-md-5"> <div class="col-md-5">
{% if parlamentar.1 %} <input type="hidden" name="voto_parlamentar" value="{{parlamentar.1}}:{{parlamentar.0.id}}" /> {% endif %} {% if parlamentar.1 %} <input type="hidden" name="voto_parlamentar" value="{{parlamentar.1}}:{{parlamentar.0.id}}" /> {% endif %}
<select id="voto_parlamentar" name="voto_parlamentar" class="form-control" {% if parlamentar.1 %} disabled {% endif %}> <select onchange="salva_votos(this)" id="voto_parlamentar" name="voto_parlamentar" class="form-control" {% if parlamentar.1 %} disabled {% endif %}>
<option value="Não Votou:{{parlamentar.0.id}}">Não Votou</option> <option value="Não Votou:{{parlamentar.0.id}}">Não Votou</option>
<option value="Sim:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Sim' %} selected {% endif %}>Sim</option> <option value="Sim:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Sim' %} selected {% endif %}>Sim</option>
<option value="Não:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Não' %} selected {% endif %}>Não</option> <option value="Não:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Não' %} selected {% endif %}>Não</option>
@ -61,9 +60,9 @@
<br /><br /> <br /><br />
<input type="submit" id="salvar-votacao" name="salvar-votacao" value="Fechar Votação" class="btn btn-primary" /> <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" /> <input type="submit" id="cancelar-votacao" name="cancelar-votacao" value="Cancelar Votação" class="btn btn-warning" />
{% endif %}
</fieldset> </fieldset>
</form> </form>
{% endif %}
{% endblock detail_content %} {% endblock detail_content %}
{% block extra_js %} {% block extra_js %}
@ -102,16 +101,40 @@
$("#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'>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>"); $("#soma_votos").append("<div class='row'><div class='col-md-12'>Ainda não votaram: " + nao_votou + "</div></div>");
var t = setTimeout(function(){ var t = setTimeout(function(){
conta_votos() conta_votos();
}, 500); }, 500);
} }
conta_votos();
window.onload = conta_votos(); function salva_votos(event){
$(event).each(function() {
let value = $(this).val();
let parlamentar_id = value.split(":")[1];
let parlamentar_voto = value.substring(0,4);
let url = window.location.pathname;
let tmp = url.split('/');
let id_ordem_expediente = tmp[5];
let is_ordemdia = (tmp[3].split('mat')[1] == 'ordemdia');
$.get("{% url 'sapl.sessao:votacao_nominal_parlamentar' %}",
{
parlamentar_id: parlamentar_id,
parlamentar_voto: parlamentar_voto,
id_ordem_expediente : id_ordem_expediente,
is_ordemdia: is_ordemdia
}, function(data, status) {
if(status == "success")
console.log("Voto salvo.");
});
});
}
$(window).on('beforeunload', function () { $(window).on('beforeunload', function () {
$("input[type=submit], input[type=button]").prop("disabled", "disabled"); $("input[type=submit], input[type=button]").prop("disabled", "disabled");
}); });
$(document).ready(function(){
conta_votos();
});
</script> </script>
{% endblock extra_js%} {% endblock extra_js%}

Loading…
Cancel
Save