From 4120edf8db28ef45b5c130af7872f6572441f382 Mon Sep 17 00:00:00 2001 From: cristian-longhi Date: Wed, 7 Jun 2017 18:15:38 -0300 Subject: [PATCH] =?UTF-8?q?Inclus=C3=A3o/exclus=C3=A3o=20da=20presen=C3=A7?= =?UTF-8?q?a=20dos=20parlamentares=20na=20Sess=C3=A3o=20Plen=C3=A1ria=20e?= =?UTF-8?q?=20Ordem=20do=20Dia=20(#1173)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Exibição e inclusão/exclusão da presença dos parlamentares na Sessão Plenária e Ordem do Dia * alterações arquivo views.py --- sapl/sessao/views.py | 58 ++++++++++---------- sapl/templates/sessao/presenca.html | 55 +++++++++++++++---- sapl/templates/sessao/presenca_ordemdia.html | 55 +++++++++++++++---- 3 files changed, 115 insertions(+), 53 deletions(-) diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index a761dfbf6..9beb28ee2 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -30,7 +30,7 @@ from sapl.materia.models import (Autoria, DocumentoAcessorio, from sapl.materia.views import MateriaLegislativaPesquisaView from sapl.norma.models import NormaJuridica from sapl.parlamentares.models import (Filiacao, Legislatura, Parlamentar, - SessaoLegislativa) + SessaoLegislativa, Mandato) from sapl.sessao.apps import AppConfig from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm @@ -123,6 +123,7 @@ def abrir_votacao_ordem_view(request, pk, spk): reverse('sapl.sessao:ordemdia_list', kwargs={'pk': spk})) + def put_link_materia(context): for i, row in enumerate(context['rows']): materia = context['object_list'][i].materia @@ -132,6 +133,21 @@ def put_link_materia(context): context['rows'][i][1] = (row[1][0], url_materia) return context +def get_presencas_generic(model, sessao, legislatura): + presencas = model.objects.filter( + sessao_plenaria=sessao) + + presentes = [p.parlamentar for p in presencas] + + mandato = Mandato.objects.filter( + legislatura=legislatura) + + for m in mandato: + if m.parlamentar in presentes: + yield (m.parlamentar, True) + else: + yield (m.parlamentar, False) + class MateriaOrdemDiaCrud(MasterDetailCrud): model = OrdemDia @@ -554,32 +570,16 @@ class SessaoPermissionMixin(PermissionRequiredForAppCrudMixin, class PresencaMixin: def get_presencas(self): - self.object = self.get_object() - - presencas = SessaoPlenariaPresenca.objects.filter( - sessao_plenaria_id=self.object.id - ) - presentes = [p.parlamentar for p in presencas] - - for parlamentar in Parlamentar.objects.filter(ativo=True): - if parlamentar in presentes: - yield (parlamentar, True) - else: - yield (parlamentar, False) + return get_presencas_generic( + SessaoPlenariaPresenca, + self.object, + self.object.legislatura) def get_presencas_ordem(self): - self.object = self.get_object() - - presencas = PresencaOrdemDia.objects.filter( - sessao_plenaria_id=self.object.id - ) - presentes = [p.parlamentar for p in presencas] - - for parlamentar in Parlamentar.objects.filter(ativo=True): - if parlamentar in presentes: - yield (parlamentar, True) - else: - yield (parlamentar, False) + return get_presencas_generic( + PresencaOrdemDia, + self.object, + self.object.legislatura) class PresencaView(FormMixin, PresencaMixin, DetailView): @@ -605,13 +605,13 @@ class PresencaView(FormMixin, PresencaMixin, DetailView): sessao_plenaria_id=self.object.id) # Id dos parlamentares presentes - marcados = request.POST.getlist('presenca') + marcados = request.POST.getlist('presenca_ativos') + request.POST.getlist('presenca_inativos') # Deletar os que foram desmarcadors deletar = set(set(presentes_banco) - set(marcados)) for d in deletar: SessaoPlenariaPresenca.objects.filter( - parlamentar_id=d.parlamentar_id).delete() + parlamentar_id=d.parlamentar_id, sessao_plenaria_id=self.object.id).delete() for p in marcados: sessao = SessaoPlenariaPresenca() @@ -713,13 +713,13 @@ class PresencaOrdemDiaView(FormMixin, PresencaMixin, DetailView): sessao_plenaria_id=pk) # Id dos parlamentares presentes - marcados = request.POST.getlist('presenca') + marcados = request.POST.getlist('presenca_ativos') + request.POST.getlist('presenca_inativos') # Deletar os que foram desmarcadors deletar = set(set(presentes_banco) - set(marcados)) for d in deletar: PresencaOrdemDia.objects.filter( - parlamentar_id=d.parlamentar_id).delete() + parlamentar_id=d.parlamentar_id, sessao_plenaria_id=self.object.id).delete() for p in marcados: ordem = PresencaOrdemDia() diff --git a/sapl/templates/sessao/presenca.html b/sapl/templates/sessao/presenca.html index 372bc8c88..af0221cf0 100644 --- a/sapl/templates/sessao/presenca.html +++ b/sapl/templates/sessao/presenca.html @@ -17,17 +17,37 @@ -
-
- {% for parlamentar, check in view.get_presencas %} -
- -
- {% endfor %} -
+ +
+
+
+ +
+
+ +
+ +
+ {% for parlamentar, check in view.get_presencas %} + {% if parlamentar.ativo %} +
+ +
+ {% else %} + + {% endif %} + {% endfor %} +

@@ -55,10 +75,21 @@ {% block extra_js %} {% endblock %} diff --git a/sapl/templates/sessao/presenca_ordemdia.html b/sapl/templates/sessao/presenca_ordemdia.html index edb4055ca..9b5afdfb1 100644 --- a/sapl/templates/sessao/presenca_ordemdia.html +++ b/sapl/templates/sessao/presenca_ordemdia.html @@ -17,19 +17,39 @@ -
+ +
- {% for parlamentar, check in view.get_presencas_ordem %}
- +
- {% endfor %}
+
+ +
+ {% for parlamentar, check in view.get_presencas_ordem %} + {% if parlamentar.ativo %} +
+ +
+ {% else %} + + {% endif %} + {% endfor %} +
+
@@ -56,10 +76,21 @@ {% block extra_js %} {% endblock %}