|
@ -1651,6 +1651,7 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
template_name = 'sessao/votacao/nominal.html' |
|
|
template_name = 'sessao/votacao/nominal.html' |
|
|
ordem = None |
|
|
ordem = None |
|
|
expediente = None |
|
|
expediente = None |
|
|
|
|
|
form_class = VotacaoNominalForm |
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
def get(self, request, *args, **kwargs): |
|
|
if self.ordem: |
|
|
if self.ordem: |
|
@ -1699,13 +1700,14 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
materia_votacao.materia.ementa))} |
|
|
materia_votacao.materia.ementa))} |
|
|
context = {'materia': materia, 'object': self.get_object(), |
|
|
context = {'materia': materia, 'object': self.get_object(), |
|
|
'parlamentares': self.get_parlamentares(presentes), |
|
|
'parlamentares': self.get_parlamentares(presentes), |
|
|
'tipos': self.get_tipos_votacao(), |
|
|
'form': self.get_form(), |
|
|
'total': total} |
|
|
'total': total} |
|
|
|
|
|
|
|
|
return self.render_to_response(context) |
|
|
return self.render_to_response(context) |
|
|
|
|
|
|
|
|
def post(self, request, *args, **kwargs): |
|
|
def post(self, request, *args, **kwargs): |
|
|
self.object = self.get_object() |
|
|
self.object = self.get_object() |
|
|
|
|
|
form = self.get_form() |
|
|
|
|
|
|
|
|
if self.ordem: |
|
|
if self.ordem: |
|
|
ordem_id = kwargs['oid'] |
|
|
ordem_id = kwargs['oid'] |
|
@ -1725,7 +1727,6 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
|
|
|
|
|
|
materia_votacao = expediente |
|
|
materia_votacao = expediente |
|
|
|
|
|
|
|
|
form = VotacaoNominalForm(request.POST) |
|
|
|
|
|
|
|
|
|
|
|
if 'cancelar-votacao' in request.POST: |
|
|
if 'cancelar-votacao' in request.POST: |
|
|
fechar_votacao_materia(materia_votacao) |
|
|
fechar_votacao_materia(materia_votacao) |
|
@ -1742,19 +1743,20 @@ class VotacaoNominalAbstract(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 == 'Não'): |
|
|
elif voto == 'Não': |
|
|
votos_nao += 1 |
|
|
votos_nao += 1 |
|
|
elif(voto == 'Abstenção'): |
|
|
elif voto == 'Abstenção': |
|
|
abstencoes += 1 |
|
|
abstencoes += 1 |
|
|
elif(voto == 'Não Votou'): |
|
|
elif voto == 'Não Votou': |
|
|
nao_votou += 1 |
|
|
nao_votou += 1 |
|
|
|
|
|
|
|
|
# Caso todas as opções sejam 'Não votou', fecha a votação |
|
|
# Caso todas as opções sejam 'Não votou', fecha a votação |
|
|
if nao_votou == len(request.POST.getlist('voto_parlamentar')): |
|
|
if nao_votou == len(request.POST.getlist('voto_parlamentar')): |
|
|
fechar_votacao_materia(materia_votacao) |
|
|
form.add_error(None, 'Não é possível finalizar a votação sem '\ |
|
|
return self.form_valid(form) |
|
|
'nenhum voto') |
|
|
|
|
|
return self.form_invalid(form) |
|
|
|
|
|
|
|
|
if self.ordem: |
|
|
if self.ordem: |
|
|
votacao = RegistroVotacao.objects.filter( |
|
|
votacao = RegistroVotacao.objects.filter( |
|
@ -1771,7 +1773,7 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
votacao.numero_votos_sim = votos_sim |
|
|
votacao.numero_votos_sim = votos_sim |
|
|
votacao.numero_votos_nao = votos_nao |
|
|
votacao.numero_votos_nao = votos_nao |
|
|
votacao.numero_abstencoes = abstencoes |
|
|
votacao.numero_abstencoes = abstencoes |
|
|
votacao.observacao = request.POST['observacao'] |
|
|
votacao.observacao = request.POST.get('observacao', None) |
|
|
|
|
|
|
|
|
if self.ordem: |
|
|
if self.ordem: |
|
|
votacao.materia_id = ordem.materia.id |
|
|
votacao.materia_id = ordem.materia.id |
|
@ -1780,8 +1782,7 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
votacao.materia_id = expediente.materia.id |
|
|
votacao.materia_id = expediente.materia.id |
|
|
votacao.expediente_id = expediente_id |
|
|
votacao.expediente_id = expediente_id |
|
|
|
|
|
|
|
|
votacao.tipo_resultado_votacao_id = int( |
|
|
votacao.tipo_resultado_votacao = form.cleaned_data['resultado_votacao'] |
|
|
request.POST['resultado_votacao']) |
|
|
|
|
|
votacao.save() |
|
|
votacao.save() |
|
|
|
|
|
|
|
|
for votos in request.POST.getlist('voto_parlamentar'): |
|
|
for votos in request.POST.getlist('voto_parlamentar'): |
|
@ -1803,8 +1804,7 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
voto_parlamentar.votacao_id = votacao.id |
|
|
voto_parlamentar.votacao_id = votacao.id |
|
|
voto_parlamentar.save() |
|
|
voto_parlamentar.save() |
|
|
|
|
|
|
|
|
resultado = TipoResultadoVotacao.objects.get( |
|
|
resultado = form.cleaned_data['resultado_votacao'] |
|
|
id=request.POST['resultado_votacao']) |
|
|
|
|
|
|
|
|
|
|
|
materia_votacao.resultado = resultado.nome |
|
|
materia_votacao.resultado = resultado.nome |
|
|
materia_votacao.votacao_aberta = False |
|
|
materia_votacao.votacao_aberta = False |
|
@ -1823,9 +1823,35 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
expediente=expediente, |
|
|
expediente=expediente, |
|
|
votacao__isnull=True).delete() |
|
|
votacao__isnull=True).delete() |
|
|
return self.form_valid(form) |
|
|
return self.form_valid(form) |
|
|
|
|
|
|
|
|
else: |
|
|
else: |
|
|
return self.form_invalid(form) |
|
|
return self.form_invalid(form) |
|
|
|
|
|
|
|
|
|
|
|
def form_invalid(self, form): |
|
|
|
|
|
errors_tuple = [(form[e].label, form.errors[e]) for e in form.errors if e in form.fields] |
|
|
|
|
|
error_message = '''<ul>''' |
|
|
|
|
|
for e in errors_tuple: |
|
|
|
|
|
error_message += '''<li><b>%s</b>: %s</li>''' % (e[0], e[1][0]) |
|
|
|
|
|
for e in form.non_field_errors(): |
|
|
|
|
|
error_message += '''<li>%s</li>''' % e |
|
|
|
|
|
error_message += '''</ul>''' |
|
|
|
|
|
|
|
|
|
|
|
messages.add_message(self.request, messages.ERROR, error_message) |
|
|
|
|
|
|
|
|
|
|
|
if self.ordem: |
|
|
|
|
|
view = 'sapl.sessao:votacaonominal' |
|
|
|
|
|
elif self.expediente: |
|
|
|
|
|
view = 'sapl.sessao:votacaonominalexp' |
|
|
|
|
|
else: |
|
|
|
|
|
view = None |
|
|
|
|
|
|
|
|
|
|
|
return HttpResponseRedirect(reverse( |
|
|
|
|
|
view, |
|
|
|
|
|
kwargs={'pk': self.kwargs['pk'], |
|
|
|
|
|
'oid': self.kwargs['oid'], |
|
|
|
|
|
'mid': self.kwargs['mid']})) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_parlamentares(self, presencas): |
|
|
def get_parlamentares(self, presencas): |
|
|
self.object = self.get_object() |
|
|
self.object = self.get_object() |
|
|
|
|
|
|
|
@ -1848,10 +1874,6 @@ class VotacaoNominalAbstract(SessaoPermissionMixin): |
|
|
else: |
|
|
else: |
|
|
yield [parlamentar, voto.voto] |
|
|
yield [parlamentar, voto.voto] |
|
|
|
|
|
|
|
|
def get_tipos_votacao(self): |
|
|
|
|
|
for tipo in TipoResultadoVotacao.objects.all(): |
|
|
|
|
|
yield tipo |
|
|
|
|
|
|
|
|
|
|
|
def get_success_url(self): |
|
|
def get_success_url(self): |
|
|
pk = self.kwargs['pk'] |
|
|
pk = self.kwargs['pk'] |
|
|
|
|
|
|
|
|