From af03289d3179c7e30920d110540f1293f9409c26 Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Tue, 8 Aug 2017 13:59:56 -0300 Subject: [PATCH] Fix #1180 --- sapl/base/templatetags/common_tags.py | 6 +++++- sapl/relatorios/views.py | 18 +++++------------ sapl/sessao/views.py | 5 ++--- .../sessao/blocos_resumo/lista_presenca.html | 4 +++- .../lista_presenca_ordem_dia.html | 4 +++- sapl/utils.py | 20 +++++++++++++++++++ 6 files changed, 38 insertions(+), 19 deletions(-) diff --git a/sapl/base/templatetags/common_tags.py b/sapl/base/templatetags/common_tags.py index 0f274ab29..a72eb6a54 100644 --- a/sapl/base/templatetags/common_tags.py +++ b/sapl/base/templatetags/common_tags.py @@ -4,7 +4,7 @@ from django import template from sapl.base.models import AppConfig from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa from sapl.norma.models import NormaJuridica -from sapl.parlamentares.models import Filiacao +from sapl.utils import filiacao_data register = template.Library() @@ -180,3 +180,7 @@ def urldetail_content_type(obj, value): def urldetail(obj): return '%s:%s_detail' % ( obj._meta.app_config.name, obj._meta.model_name) + +@register.filter +def filiacao_epoca_filter(parlamentar, sessao): + return filiacao_data(parlamentar, sessao.data_inicio) diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py index c00f770a2..ffd371600 100644 --- a/sapl/relatorios/views.py +++ b/sapl/relatorios/views.py @@ -19,7 +19,7 @@ from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao, SessaoPlenaria, SessaoPlenariaPresenca, TipoExpediente) from sapl.settings import STATIC_ROOT -from sapl.utils import UF +from sapl.utils import filiacao_data, UF from .templates import (pdf_capa_processo_gerar, pdf_documento_administrativo_gerar, pdf_espelho_gerar, @@ -510,12 +510,8 @@ def get_sessao_plenaria(sessao, casa): for parlamentar in [p.parlamentar for p in presenca]: dic_presenca = {} dic_presenca["nom_parlamentar"] = parlamentar.nome_parlamentar - partido = Filiacao.objects.filter( - parlamentar=parlamentar).first() - if partido: - partido_sigla = partido.partido.sigla - else: - partido_sigla = '' + partido_sigla = filiacao_data(parlamentar, sessao.data_inicio) + dic_presenca['sgl_partido'] = partido_sigla lst_presenca_sessao.append(dic_presenca) @@ -651,12 +647,8 @@ def get_sessao_plenaria(sessao, casa): dic_presenca_ordem_dia = {} dic_presenca_ordem_dia['nom_parlamentar'] = ( parlamentar.nome_parlamentar) - partido_sigla = Filiacao.objects.filter( - parlamentar=parlamentar).first() - if not partido_sigla: - sigla = '' - else: - sigla = partido_sigla.partido.sigla + sigla = filiacao_data(parlamentar, sessao.data_inicio) + dic_presenca_ordem_dia['sgl_partido'] = sigla lst_presenca_ordem_dia.append(dic_presenca_ordem_dia) diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 61cadbf71..c2012bd94 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -34,7 +34,6 @@ from sapl.parlamentares.models import (Filiacao, Legislatura, Parlamentar, SessaoLegislativa, Mandato) from sapl.sessao.apps import AppConfig from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm - from .forms import (AdicionarVariasMateriasFilterSet, ExpedienteForm, ListMateriaForm, MesaForm, OradorExpedienteForm, OradorForm, PautaSessaoFilterSet, PresencaForm, @@ -1458,9 +1457,9 @@ class VotacaoEditView(SessaoPermissionMixin): class VotacaoView(SessaoPermissionMixin): - ''' + """ Votação Simbólica e Secreta - ''' + """ template_name = 'sessao/votacao/votacao.html' form_class = VotacaoForm diff --git a/sapl/templates/sessao/blocos_resumo/lista_presenca.html b/sapl/templates/sessao/blocos_resumo/lista_presenca.html index c89f23588..60b487068 100644 --- a/sapl/templates/sessao/blocos_resumo/lista_presenca.html +++ b/sapl/templates/sessao/blocos_resumo/lista_presenca.html @@ -1,8 +1,10 @@ +{% load common_tags %} +
Lista de Presença na Sessão
{% for p in presenca_sessao %} -
{{p.nome_parlamentar}} / {{ p.filiacao_atual }}
+
{{p.nome_parlamentar}} / {{ p|filiacao_epoca_filter:object }}
{% endfor %}
\ No newline at end of file diff --git a/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html b/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html index 910e6a3d2..9ddb8fe1f 100644 --- a/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html +++ b/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html @@ -1,8 +1,10 @@ +{% load common_tags %} +
Lista de Presença na Ordem do Dia
{% for p in presenca_ordem %} -
{{p.nome_parlamentar}} / {{ p.filiacao_atual }}
+
{{p.nome_parlamentar}} / {{ p|filiacao_epoca_filter:object }}
{% endfor %}
\ No newline at end of file diff --git a/sapl/utils.py b/sapl/utils.py index 7a4146fc5..2f56605a7 100644 --- a/sapl/utils.py +++ b/sapl/utils.py @@ -14,6 +14,7 @@ from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Button from django import forms from django.apps import apps +from django.db.models import Q from django.conf import settings from django.contrib import admin from django.contrib.contenttypes.fields import (GenericForeignKey, GenericRel, @@ -26,6 +27,7 @@ from reversion.admin import VersionAdmin from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row from sapl.settings import BASE_DIR, PROJECT_DIR + sapl_logger = logging.getLogger(BASE_DIR.name) @@ -553,3 +555,21 @@ def texto_upload_path(instance, filename, subpath='', pk_first=False): } return path + + +def filiacao_data(parlamentar, data): + from sapl.parlamentares.models import Filiacao + + filiacoes_parlamentar = Filiacao.objects.filter( + parlamentar=parlamentar) + + filiacoes = filiacoes_parlamentar.filter(Q( + data__lte=data, + data_desfiliacao__isnull=True) | Q( + data__lte=data, + data_desfiliacao__gte=data)) + + if filiacoes: + return filiacoes.last().partido.sigla + else: + return '' \ No newline at end of file