diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 1a78adaa4..8e36bb4c0 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -29,7 +29,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 @@ -533,7 +533,7 @@ class SessaoPermissionMixin(PermissionRequiredForAppCrudMixin, class PresencaMixin: - def get_presencas(self): + def get_presencas_demais(self): self.object = self.get_object() presencas = SessaoPlenariaPresenca.objects.filter( @@ -541,13 +541,39 @@ class PresencaMixin: ) 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) + mandato = Mandato.objects.filter( + legislatura_id=self.object.legislatura_id) + + mandato_parlamentar = [p.parlamentar for p in mandato] + + for parlamentar in mandato_parlamentar: + if parlamentar in Parlamentar.objects.filter(ativo=False): + if parlamentar in presentes: + yield (parlamentar, True) + else: + yield (parlamentar, False) + + def get_presencas_ativos(self): + self.object = self.get_object() + + presencas = SessaoPlenariaPresenca.objects.filter( + sessao_plenaria_id=self.object.id + ) + presentes = [p.parlamentar for p in presencas] + + mandato = Mandato.objects.filter( + legislatura_id=self.object.legislatura_id) + + mandato_parlamentar = [p.parlamentar for p in mandato] + + for parlamentar in mandato_parlamentar: + if parlamentar in Parlamentar.objects.filter(ativo=True): + if parlamentar in presentes: + yield (parlamentar, True) + else: + yield (parlamentar, False) - def get_presencas_ordem(self): + def get_presencas_ordem_demais(self): self.object = self.get_object() presencas = PresencaOrdemDia.objects.filter( @@ -555,11 +581,37 @@ class PresencaMixin: ) 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) + mandato = Mandato.objects.filter( + legislatura_id=self.object.legislatura_id) + + mandato_parlamentar = [p.parlamentar for p in mandato] + + for parlamentar in mandato_parlamentar: + if parlamentar in Parlamentar.objects.filter(ativo=False): + if parlamentar in presentes: + yield (parlamentar, True) + else: + yield (parlamentar, False) + + def get_presencas_ordem_ativos(self): + self.object = self.get_object() + + presencas = PresencaOrdemDia.objects.filter( + sessao_plenaria_id=self.object.id + ) + presentes = [p.parlamentar for p in presencas] + + mandato = Mandato.objects.filter( + legislatura_id=self.object.legislatura_id) + + mandato_parlamentar = [p.parlamentar for p in mandato] + + for parlamentar in mandato_parlamentar: + if parlamentar in Parlamentar.objects.filter(ativo=True): + if parlamentar in presentes: + yield (parlamentar, True) + else: + yield (parlamentar, False) class PresencaView(FormMixin, PresencaMixin, DetailView): @@ -585,13 +637,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_demais') # 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() @@ -693,13 +745,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_demais') # 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..ff37d16f3 100644 --- a/sapl/templates/sessao/presenca.html +++ b/sapl/templates/sessao/presenca.html @@ -17,19 +17,45 @@ + +
+
+
+ +
+
+
-
- {% for parlamentar, check in view.get_presencas %} -
- -
- {% endfor %} +
+
+ {% for parlamentar, check in view.get_presencas_ativos %} +
+ +
+ {% endfor %} +
+
+ +
+ @@ -55,10 +81,25 @@ {% block extra_js %} {% endblock %} diff --git a/sapl/templates/sessao/presenca_ordemdia.html b/sapl/templates/sessao/presenca_ordemdia.html index edb4055ca..bd8d402e5 100644 --- a/sapl/templates/sessao/presenca_ordemdia.html +++ b/sapl/templates/sessao/presenca_ordemdia.html @@ -17,19 +17,46 @@
-
+ +
- {% for parlamentar, check in view.get_presencas_ordem %}
- +
+
+ +
+ +
+
+ {% for parlamentar, check in view.get_presencas_ordem_ativos %} +
+ +
{% endfor %} +
+ + +
@@ -56,10 +83,25 @@ {% block extra_js %} {% endblock %}