From b9d72aa0a2a4c77e304e02c0f2ea521f3cba5d0f Mon Sep 17 00:00:00 2001 From: Edward Ribeiro Date: Tue, 9 May 2017 14:04:55 -0300 Subject: [PATCH] Fix #1066 --- sapl/sessao/urls.py | 4 ++ sapl/sessao/views.py | 60 ++++++++++++++++++- .../sessao/votacao/nominal_detail.html | 54 +++++++++++++++++ 3 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 sapl/templates/sessao/votacao/nominal_detail.html diff --git a/sapl/sessao/urls.py b/sapl/sessao/urls.py index e06376fd6..f237bf721 100644 --- a/sapl/sessao/urls.py +++ b/sapl/sessao/urls.py @@ -16,6 +16,7 @@ from sapl.sessao.views import (AdicionarVariasMateriasExpediente, VotacaoEditView, VotacaoExpedienteEditView, VotacaoExpedienteView, VotacaoNominalEditView, VotacaoNominalExpedienteEditView, + VotacaoNominalExpedienteDetailView, VotacaoNominalExpedienteView, VotacaoNominalView, VotacaoView, abrir_votacao_expediente_view, @@ -120,6 +121,9 @@ urlpatterns = [ url(r'^sessao/(?P\d+)/matexp/votnom/edit/(?P\d+)/(?P\d+)$', VotacaoNominalExpedienteEditView.as_view(), name='votacaonominalexpedit'), + url(r'^sessao/(?P\d+)/matexp/votnom/detail/(?P\d+)/(?P\d+)$', + VotacaoNominalExpedienteDetailView.as_view(), + name='votacaonominalexpdetail'), url(r'^sessao/(?P\d+)/matexp/votsimb/(?P\d+)/(?P\d+)$', VotacaoExpedienteView.as_view(), name='votacaosimbolicaexp'), url(r'^sessao/(?P\d+)/matexp/votsec/view/(?P\d+)/(?P\d+)$', diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 852444752..a4dc33b48 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -354,9 +354,20 @@ class ExpedienteMateriaCrud(MasterDetailCrud): resultado_descricao, resultado_observacao)) else: - obj.resultado = ('%s
%s' % - (resultado_descricao, + if obj.tipo_votacao == 2: + url = reverse('sapl.sessao:votacaonominalexpdetail', + kwargs={ + 'pk': obj.sessao_plenaria_id, + 'oid': obj.materia_id, + 'mid': obj.pk}) + obj.resultado = ('%s
%s' % + (url, + resultado_descricao, resultado_observacao)) + else: + obj.resultado = ('%s
%s' % + (resultado_descricao, + resultado_observacao)) return [self._as_row(obj) for obj in object_list] class CreateView(MasterDetailCrud.CreateView): @@ -1847,6 +1858,51 @@ class VotacaoNominalExpedienteEditView(SessaoPermissionMixin): return reverse('sapl.sessao:expedientemateria_list', kwargs={'pk': pk}) +class VotacaoNominalExpedienteDetailView(DetailView): + template_name = 'sessao/votacao/nominal_detail.html' + + def get(self, request, *args, **kwargs): + context = {} + materia_id = kwargs['oid'] + expediente_id = kwargs['mid'] + + votacao = RegistroVotacao.objects.get( + materia_id=materia_id, + expediente_id=expediente_id) + expediente = ExpedienteMateria.objects.get(id=expediente_id) + votos = VotoParlamentar.objects.filter(votacao_id=votacao.id) + + list_votos = [] + for v in votos: + parlamentar = Parlamentar.objects.get(id=v.parlamentar_id) + list_votos.append({'parlamentar': parlamentar, 'voto': v.voto}) + + context.update({'votos': list_votos}) + + materia = {'materia': expediente.materia, + 'ementa': sub( + ' ', ' ', strip_tags(expediente.observacao))} + context.update({'materia': materia}) + + votacao_existente = {'observacao': sub( + ' ', ' ', strip_tags(votacao.observacao)), + 'resultado': votacao.tipo_resultado_votacao.nome, + 'tipo_resultado': + votacao.tipo_resultado_votacao_id} + context.update({'votacao': votacao_existente, + 'tipos': self.get_tipos_votacao()}) + + return self.render_to_response(context) + + def get_tipos_votacao(self): + for tipo in TipoResultadoVotacao.objects.all(): + yield tipo + + def get_success_url(self): + pk = self.kwargs['pk'] + return reverse('sapl.sessao:expedientemateria_list', + kwargs={'pk': pk}) + class VotacaoExpedienteView(SessaoPermissionMixin): diff --git a/sapl/templates/sessao/votacao/nominal_detail.html b/sapl/templates/sessao/votacao/nominal_detail.html new file mode 100644 index 000000000..e27fd3c53 --- /dev/null +++ b/sapl/templates/sessao/votacao/nominal_detail.html @@ -0,0 +1,54 @@ +{% extends "crud/detail.html" %} +{% load i18n %} + +{% block detail_content %} +
+ {% csrf_token %} + +
+ Votação Nominal +
+ Matéria: {{materia.materia|safe}} +
+ Ementa: {{materia.ementa|safe}} +
+ +
+
+ Votos +
+ {% for v in votos %} +
{{v.parlamentar}}
+
{{v.voto}}
+ {% endfor %} +
+
+
+
+
+
+ Resultado da Votação: + {% for tipo in tipos %} + {% if votacao.tipo_resultado == tipo.id %} + {{ tipo.nome }} + {% endif %} + {% endfor %} +
+
+ +
+
+
+ Observações + +
+
+
+
+{% endblock detail_content %} + +{% block foot_js %} + +{% endblock %}