Browse Source

Fix #2836

pull/2839/head
João Matheus 7 years ago
parent
commit
2ae3988b06
  1. 12
      sapl/sessao/forms.py
  2. 72
      sapl/sessao/views.py
  3. 10
      sapl/templates/sessao/votacao/votacao.html
  4. 7
      sapl/templates/sessao/votacao/votacao_simbolica_bloco.html

12
sapl/sessao/forms.py

@ -464,6 +464,9 @@ class VotacaoForm(forms.Form):
abstencoes = forms.IntegerField(label='Abstenções') abstencoes = forms.IntegerField(label='Abstenções')
total_presentes = forms.IntegerField( total_presentes = forms.IntegerField(
required=False, widget=forms.HiddenInput()) required=False, widget=forms.HiddenInput())
total_votantes = forms.IntegerField(
required=False, widget=forms.HiddenInput()
)
voto_presidente = forms.IntegerField( voto_presidente = forms.IntegerField(
label='A totalização inclui o voto do Presidente?') label='A totalização inclui o voto do Presidente?')
total_votos = forms.IntegerField(required=False, label='total') total_votos = forms.IntegerField(required=False, label='total')
@ -479,15 +482,16 @@ class VotacaoForm(forms.Form):
votos_nao = cleaned_data['votos_nao'] votos_nao = cleaned_data['votos_nao']
abstencoes = cleaned_data['abstencoes'] abstencoes = cleaned_data['abstencoes']
qtde_presentes = cleaned_data['total_presentes'] qtde_presentes = cleaned_data['total_presentes']
qtde_votantes = cleaned_data['total_votantes']
qtde_votos = votos_sim + votos_nao + abstencoes qtde_votos = votos_sim + votos_nao + abstencoes
voto_presidente = cleaned_data['voto_presidente'] voto_presidente = cleaned_data['voto_presidente']
if qtde_presentes and not voto_presidente: if qtde_votantes and not voto_presidente:
qtde_presentes -= 1 qtde_votantes -= 1
if qtde_presentes and qtde_votos != qtde_presentes: if qtde_votantes and qtde_votos != qtde_votantes:
raise ValidationError( raise ValidationError(
'O total de votos não corresponde com a quantidade de presentes!') 'O total de votos não corresponde com a quantidade de votantes!')
return cleaned_data return cleaned_data

72
sapl/sessao/views.py

@ -3620,17 +3620,41 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
if request.POST['origem'] == 'ordem': if request.POST['origem'] == 'ordem':
ordens = OrdemDia.objects.filter( ordens = OrdemDia.objects.filter(
id__in=request.POST.getlist('marcadas_1')) id__in=request.POST.getlist('marcadas_1'))
qtde_presentes = PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']).count() presentes_id = [
presente.parlamentar.id for presente in PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
)
]
qtde_presentes = len(presentes_id)
presenca_ativos = Parlamentar.objects.filter(
id__in=presentes_id, ativo=True
)
qtde_ativos = len(presenca_ativos)
context.update({'ordens': ordens, context.update({'ordens': ordens,
'total_presentes': qtde_presentes}) 'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
else: else:
expedientes = ExpedienteMateria.objects.filter( expedientes = ExpedienteMateria.objects.filter(
id__in=request.POST.getlist('marcadas_1')) id__in=request.POST.getlist('marcadas_1'))
qtde_presentes = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.kwargs['pk']).count() presentes_id = [
presente.parlamentar.id for presente in SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
)
]
qtde_presentes = len(presentes_id)
presenca_ativos = Parlamentar.objects.filter(
id__in=presentes_id, ativo=True
)
qtde_ativos = len(presenca_ativos)
context.update({'expedientes': expedientes, context.update({'expedientes': expedientes,
'total_presentes': qtde_presentes}) 'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
if 'salvar-votacao' in request.POST: if 'salvar-votacao' in request.POST:
form = VotacaoForm(request.POST) form = VotacaoForm(request.POST)
@ -3755,17 +3779,41 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
if self.request.POST['origem'] == 'ordem': if self.request.POST['origem'] == 'ordem':
ordens = OrdemDia.objects.filter( ordens = OrdemDia.objects.filter(
id__in=self.request.POST.getlist('ordens')) id__in=self.request.POST.getlist('ordens'))
qtde_presentes = PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']).count() presentes_id = [
presente.parlamentar.id for presente in PresencaOrdemDia.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
)
]
qtde_presentes = len(presentes_id)
presenca_ativos = Parlamentar.objects.filter(
id__in=presentes_id, ativo=True
)
qtde_ativos = len(presenca_ativos)
context.update({'ordens': ordens, context.update({'ordens': ordens,
'total_presentes': qtde_presentes}) 'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
elif self.request.POST['origem'] == 'expediente': elif self.request.POST['origem'] == 'expediente':
expedientes = ExpedienteMateria.objects.filter( expedientes = ExpedienteMateria.objects.filter(
id__in=self.request.POST.getlist('expedientes')) id__in=self.request.POST.getlist('expedientes'))
qtde_presentes = SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.kwargs['pk']).count() presentes_id = [
presente.parlamentar.id for presente in SessaoPlenariaPresenca.objects.filter(
sessao_plenaria_id=self.kwargs['pk']
)
]
qtde_presentes = len(presentes_id)
presenca_ativos = Parlamentar.objects.filter(
id__in=presentes_id, ativo=True
)
qtde_ativos = len(presenca_ativos)
context.update({'expedientes': expedientes, context.update({'expedientes': expedientes,
'total_presentes': qtde_presentes}) 'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
context.update({'resultado_votacao': TipoResultadoVotacao.objects.all(), context.update({'resultado_votacao': TipoResultadoVotacao.objects.all(),
'form': form, 'form': form,

10
sapl/templates/sessao/votacao/votacao.html

@ -39,14 +39,14 @@
<br /> <br />
<div class="row"> <div class="row">
<div class="col-md-4">Sim: <input type="text" id="votos_sim" name="votos_sim" value="" class="form-control"/></div> <div class="col-md-4">Sim*: <input type="text" id="votos_sim" name="votos_sim" value="" class="form-control"/></div>
<div class="col-md-4">Não: <input type="text" id="votos_nao" name="votos_nao" value="" class="form-control"/></div> <div class="col-md-4">Não*: <input type="text" id="votos_nao" name="votos_nao" value="" class="form-control"/></div>
<div class="col-md-4">Abstenções: <input type="text" id="abstencoes" name="abstencoes" value="" class="form-control"/></div> <div class="col-md-4">Abstenções*: <input type="text" id="abstencoes" name="abstencoes" value="" class="form-control"/></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
A totalização inclui o voto do Presidente? A totalização inclui o voto do Presidente?*
<select id="voto_presidente" name="voto_presidente" class="form-control"> <select id="voto_presidente" name="voto_presidente" class="form-control">
<option value="1">Sim</option> <option value="1">Sim</option>
<option value="0" selected>Não</option> <option value="0" selected>Não</option>
@ -54,7 +54,7 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
Resultado da Votação Resultado da Votação*
<select id="resultado_votacao" name="resultado_votacao" class="form-control"> <select id="resultado_votacao" name="resultado_votacao" class="form-control">
{% for tipo in view.get_tipos_votacao %} {% for tipo in view.get_tipos_votacao %}
<option value="{{tipo.id}}">{{tipo.nome}}</option> <option value="{{tipo.id}}">{{tipo.nome}}</option>

7
sapl/templates/sessao/votacao/votacao_simbolica_bloco.html

@ -8,9 +8,9 @@
<fieldset class="form-group"> <fieldset class="form-group">
<legend>Votação Simbólica</legend> <legend>Votação Simbólica</legend>
{% if ordens or expedientes %} {% if ordens or expedientes %}
{% if total_presentes == 0 %} {% if total_votantes == 0 %}
<div class="alert alert-info alert-dismissible " role="alert"> <div class="alert alert-info alert-dismissible " role="alert">
<div>Não existe nenhum parlamentar presente para que a votação ocorra.</div> <div>Não existe nenhum parlamentar ativo presente para que a votação ocorra.</div>
</div> </div>
{% if origem == 'ordem' %} {% if origem == 'ordem' %}
<a href="{% url 'sapl.sessao:votacao_bloco_ordemdia' pk %}" class="btn btn-warning">Voltar</a> <a href="{% url 'sapl.sessao:votacao_bloco_ordemdia' pk %}" class="btn btn-warning">Voltar</a>
@ -36,7 +36,10 @@
{% endfor %} {% endfor %}
{% endif %} {% endif %}
<b>Total presentes:</b> {{total_presentes}} (com presidente) <b>Total presentes:</b> {{total_presentes}} (com presidente)
<br/>
<b>Total votantes:</b> {{total_votantes}} (com presidente)
<input type="hidden" id="total_presentes" name="total_presentes" value="{{total_presentes}}"> <input type="hidden" id="total_presentes" name="total_presentes" value="{{total_presentes}}">
<input type="hidden" id="total_votantes" name="total_votantes" value="{{total_votantes}}">
</div> </div>
<br /> <br />

Loading…
Cancel
Save