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')
total_presentes = forms.IntegerField(
required=False, widget=forms.HiddenInput())
total_votantes = forms.IntegerField(
required=False, widget=forms.HiddenInput()
)
voto_presidente = forms.IntegerField(
label='A totalização inclui o voto do Presidente?')
total_votos = forms.IntegerField(required=False, label='total')
@ -479,15 +482,16 @@ class VotacaoForm(forms.Form):
votos_nao = cleaned_data['votos_nao']
abstencoes = cleaned_data['abstencoes']
qtde_presentes = cleaned_data['total_presentes']
qtde_votantes = cleaned_data['total_votantes']
qtde_votos = votos_sim + votos_nao + abstencoes
voto_presidente = cleaned_data['voto_presidente']
if qtde_presentes and not voto_presidente:
qtde_presentes -= 1
if qtde_votantes and not voto_presidente:
qtde_votantes -= 1
if qtde_presentes and qtde_votos != qtde_presentes:
if qtde_votantes and qtde_votos != qtde_votantes:
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

72
sapl/sessao/views.py

@ -3620,17 +3620,41 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
if request.POST['origem'] == 'ordem':
ordens = OrdemDia.objects.filter(
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,
'total_presentes': qtde_presentes})
'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
else:
expedientes = ExpedienteMateria.objects.filter(
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,
'total_presentes': qtde_presentes})
'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
if 'salvar-votacao' in request.POST:
form = VotacaoForm(request.POST)
@ -3755,17 +3779,41 @@ class VotacaoEmBlocoSimbolicaView(PermissionRequiredForAppCrudMixin, TemplateVie
if self.request.POST['origem'] == 'ordem':
ordens = OrdemDia.objects.filter(
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,
'total_presentes': qtde_presentes})
'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
elif self.request.POST['origem'] == 'expediente':
expedientes = ExpedienteMateria.objects.filter(
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,
'total_presentes': qtde_presentes})
'total_presentes': qtde_presentes,
'total_votantes': qtde_ativos})
context.update({'resultado_votacao': TipoResultadoVotacao.objects.all(),
'form': form,

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

@ -39,14 +39,14 @@
<br />
<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">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">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">Abstenções*: <input type="text" id="abstencoes" name="abstencoes" value="" class="form-control"/></div>
</div>
<div class="row">
<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">
<option value="1">Sim</option>
<option value="0" selected>Não</option>
@ -54,7 +54,7 @@
</div>
<div class="col-md-6">
Resultado da Votação
Resultado da Votação*
<select id="resultado_votacao" name="resultado_votacao" class="form-control">
{% for tipo in view.get_tipos_votacao %}
<option value="{{tipo.id}}">{{tipo.nome}}</option>

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

@ -8,9 +8,9 @@
<fieldset class="form-group">
<legend>Votação Simbólica</legend>
{% if ordens or expedientes %}
{% if total_presentes == 0 %}
{% if total_votantes == 0 %}
<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>
{% if origem == 'ordem' %}
<a href="{% url 'sapl.sessao:votacao_bloco_ordemdia' pk %}" class="btn btn-warning">Voltar</a>
@ -36,7 +36,10 @@
{% endfor %}
{% endif %}
<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_votantes" name="total_votantes" value="{{total_votantes}}">
</div>
<br />

Loading…
Cancel
Save