Browse Source

Votação expediente

pull/906/head
Eduardo Edson Batista Cordeiro Alves 8 years ago
parent
commit
7239289003
  1. 79
      sapl/sessao/views.py
  2. 2
      sapl/templates/painel/index.html
  3. 26
      sapl/templates/sessao/votacao/nominal.html

79
sapl/sessao/views.py

@ -3,7 +3,7 @@ from re import sub
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import permission_required from django.contrib.auth.decorators import permission_required
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.forms.utils import ErrorList from django.forms.utils import ErrorList
from django.http import JsonResponse from django.http import JsonResponse
@ -42,7 +42,8 @@ from .models import (Bancada, Bloco, CargoBancada, CargoMesa,
MateriaLegislativa, Orador, OradorExpediente, OrdemDia, MateriaLegislativa, Orador, OradorExpediente, OrdemDia,
PresencaOrdemDia, RegistroVotacao, SessaoPlenaria, PresencaOrdemDia, RegistroVotacao, SessaoPlenaria,
SessaoPlenariaPresenca, TipoExpediente, SessaoPlenariaPresenca, TipoExpediente,
TipoResultadoVotacao, TipoSessaoPlenaria, VotoParlamentar) TipoResultadoVotacao, TipoSessaoPlenaria, VotoNominal,
VotoParlamentar)
TipoSessaoCrud = CrudAux.build(TipoSessaoPlenaria, 'tipo_sessao_plenaria') TipoSessaoCrud = CrudAux.build(TipoSessaoPlenaria, 'tipo_sessao_plenaria')
TipoExpedienteCrud = CrudAux.build(TipoExpediente, 'tipo_expediente') TipoExpedienteCrud = CrudAux.build(TipoExpediente, 'tipo_expediente')
@ -1486,15 +1487,7 @@ class VotacaoNominalEditView(SessaoPermissionMixin):
ordem.votacao_aberta = False ordem.votacao_aberta = False
ordem.save() ordem.save()
try: trySessaoPe()
votacao = VotoParlamentar.objects.filter(
votacao_id=registro.id)
for v in votacao:
v.delete()
except:
pass
registro.delete()
return self.form_valid(form) return self.form_valid(form)
@ -1521,7 +1514,7 @@ class VotacaoNominalExpedienteView(SessaoPermissionMixin):
'ementa': sub( 'ementa': sub(
' ', ' ', strip_tags(expediente.observacao))} ' ', ' ', strip_tags(expediente.observacao))}
context = {'materia': materia, 'object': self.get_object(), context = {'materia': materia, 'object': self.get_object(),
'parlamentares': self.get_parlamentares(), 'parlamentares': self.get_parlamentares(expediente.materia),
'tipos': self.get_tipos_votacao(), 'tipos': self.get_tipos_votacao(),
'total': total} 'total': total}
@ -1536,6 +1529,23 @@ class VotacaoNominalExpedienteView(SessaoPermissionMixin):
form = VotacaoNominalForm(request.POST) form = VotacaoNominalForm(request.POST)
if 'cancelar-votacao' in request.POST: if 'cancelar-votacao' in request.POST:
sessao = self.object
expediente_id = kwargs['mid']
expediente = ExpedienteMateria.objects.get(id=expediente_id)
materia = expediente.materia
presentes = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=expediente.sessao_plenaria_id)
for p in presentes:
try:
voto = VotoNominal.objects.get(
parlamentar=p.parlamentar,
sessao=self.object.pk,
materia=materia)
except ObjectDoesNotExist:
pass
else:
voto.delete()
expediente.votacao_aberta = False expediente.votacao_aberta = False
expediente.save() expediente.save()
return self.form_valid(form) return self.form_valid(form)
@ -1554,13 +1564,13 @@ class VotacaoNominalExpedienteView(SessaoPermissionMixin):
voto = v[0] voto = v[0]
parlamentar_id = v[1] parlamentar_id = v[1]
if(voto == 'sim'): if(voto == 'Sim'):
votos_sim += 1 votos_sim += 1
elif(voto == 'nao'): elif(voto == 'o'):
votos_nao += 1 votos_nao += 1
elif(voto == 'abstencao'): elif(voto == 'Abstenção'):
abstencoes += 1 abstencoes += 1
elif(voto == 'nao_votou'): elif(voto == 'Não Votou'):
nao_votou += 1 nao_votou += 1
try: try:
@ -1587,14 +1597,7 @@ class VotacaoNominalExpedienteView(SessaoPermissionMixin):
parlamentar_id = v[1] parlamentar_id = v[1]
voto_parlamentar = VotoParlamentar() voto_parlamentar = VotoParlamentar()
if(voto == 'sim'): voto_parlamentar.voto = voto
voto_parlamentar.voto = _('Sim')
elif(voto == 'nao'):
voto_parlamentar.voto = _('Não')
elif(voto == 'abstencao'):
voto_parlamentar.voto = _('Abstenção')
elif(voto == 'nao_votou'):
voto_parlamentar.voto = _('Não Votou')
voto_parlamentar.parlamentar_id = parlamentar_id voto_parlamentar.parlamentar_id = parlamentar_id
voto_parlamentar.votacao_id = votacao.id voto_parlamentar.votacao_id = votacao.id
voto_parlamentar.save() voto_parlamentar.save()
@ -1612,9 +1615,8 @@ class VotacaoNominalExpedienteView(SessaoPermissionMixin):
else: else:
return self.form_invalid(form) return self.form_invalid(form)
def get_parlamentares(self): def get_parlamentares(self, materia):
self.object = self.get_object() self.object = self.get_object()
presencas = SessaoPlenariaPresenca.objects.filter( presencas = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.object.id sessao_plenaria_id=self.object.id
) )
@ -1622,7 +1624,15 @@ class VotacaoNominalExpedienteView(SessaoPermissionMixin):
for parlamentar in Parlamentar.objects.filter(ativo=True): for parlamentar in Parlamentar.objects.filter(ativo=True):
if parlamentar in presentes: if parlamentar in presentes:
yield parlamentar try:
voto = VotoNominal.objects.get(
parlamentar=parlamentar,
sessao=self.object.pk,
materia=materia)
except ObjectDoesNotExist:
yield [parlamentar, None]
else:
yield [parlamentar, voto.voto]
def get_tipos_votacao(self): def get_tipos_votacao(self):
for tipo in TipoResultadoVotacao.objects.all(): for tipo in TipoResultadoVotacao.objects.all():
@ -1676,6 +1686,21 @@ class VotacaoNominalExpedienteEditView(SessaoPermissionMixin):
materia_id = kwargs['oid'] materia_id = kwargs['oid']
expediente_id = kwargs['mid'] expediente_id = kwargs['mid']
sessao = self.object
expediente = ExpedienteMateria.objects.get(id=expediente_id)
presentes = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=expediente.sessao_plenaria_id)
for p in presentes:
try:
voto = VotoNominal.objects.get(
parlamentar=p.parlamentar,
sessao=self.object.pk,
materia=materia_id)
except ObjectDoesNotExist:
pass
else:
voto.delete()
if(int(request.POST['anular_votacao']) == 1): if(int(request.POST['anular_votacao']) == 1):
registro = RegistroVotacao.objects.get( registro = RegistroVotacao.objects.get(
materia_id=materia_id, materia_id=materia_id,

2
sapl/templates/painel/index.html

@ -279,4 +279,4 @@
})(); })();
}); });
</script> </script>
</html> </html>

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

@ -20,18 +20,24 @@
<a href="{% url 'sapl.sessao:sessaoplenaria_detail' object.pk %}" class="btn btn-warning">Voltar</a> <a href="{% url 'sapl.sessao:sessaoplenaria_detail' object.pk %}" class="btn btn-warning">Voltar</a>
{% else %} {% else %}
<fieldset class="form-group"> <fieldset class="form-group">
<div class="row">
<div class="col-md-12"><input type="button" value="Atualizar Votos" onClick="window.location.href=window.location.href" class="btn btn-primary sm"></div>
</div>
<br />
<legend>Votos</legend> <legend>Votos</legend>
<div class="row"> <div class="row">
{% for parlamentar in parlamentares %} {% for parlamentar in parlamentares %}
<div class="col-md-6">{{parlamentar.nome_parlamentar}}</div> <div class="col-md-6">{{parlamentar.0.nome_parlamentar}}</div>
<div class="col-md-6"> <div class="col-md-6">
<select id="voto_parlamentar" name="voto_parlamentar" class="form-control"> {% if parlamentar.1 %} <input type="hidden" name="voto_parlamentar" value="{{parlamentar.1}}:{{parlamentar.0.id}}" /> {% endif %}
<option value="sim:{{parlamentar.id}}">Sim</option> <select id="voto_parlamentar" name="voto_parlamentar" class="form-control" {% if parlamentar.1 %} disabled {% endif %}>
<option value="nao:{{parlamentar.id}}">Não</option> <option value="Não Votou:{{parlamentar.0.id}}">Não Votou</option>
<option value="abstencao:{{parlamentar.id}}">Abstenção</option> <option value="Sim:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Sim' %} selected {% endif %}>Sim</option>
<option value="nao_votou:{{parlamentar.id}}">Não Votou</option> <option value="Não:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Não' %} selected {% endif %}>Não</option>
</select> <option value="Abstenção:{{parlamentar.0.id}}" {% if parlamentar.1 == 'Abstenção' %} selected {% endif %}>Abstenção</option>
</div> </select>
</div>
{% endfor %} {% endfor %}
</div> </div>
</fieldset> </fieldset>
@ -56,7 +62,7 @@
</div> </div>
<br /><br /> <br /><br />
<input type="submit" id="salvar-votacao" name="salvar-votacao" value="Salvar" 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" />
</fieldset> </fieldset>
</form> </form>

Loading…
Cancel
Save