diff --git a/sapl/base/templatetags/common_tags.py b/sapl/base/templatetags/common_tags.py index a72eb6a54..72dab26ba 100644 --- a/sapl/base/templatetags/common_tags.py +++ b/sapl/base/templatetags/common_tags.py @@ -182,5 +182,10 @@ def urldetail(obj): obj._meta.app_config.name, obj._meta.model_name) @register.filter -def filiacao_epoca_filter(parlamentar, sessao): - return filiacao_data(parlamentar, sessao.data_inicio) +def filiacao_data_filter(parlamentar, data_inicio): + return filiacao_data(parlamentar, data_inicio) + + +@register.filter +def filiacao_intervalo_filter(parlamentar, date_range): + return filiacao_data(parlamentar, date_range[0], date_range[1]) diff --git a/sapl/base/views.py b/sapl/base/views.py index d362c4f94..336a90af2 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -283,6 +283,7 @@ class RelatorioPresencaSessaoView(FilterView): {'ordemdia_porc': round( ordemdia_count * 100 / total_ordemdia, 1)}) + context['date_range'] = _range context['total_ordemdia'] = total_ordemdia context['total_sessao'] = context['object_list'].count() context['parlamentares'] = parlamentares_presencas diff --git a/sapl/templates/base/RelatorioPresencaSessao_filter.html b/sapl/templates/base/RelatorioPresencaSessao_filter.html index 02955b4e6..ea3b1fca2 100644 --- a/sapl/templates/base/RelatorioPresencaSessao_filter.html +++ b/sapl/templates/base/RelatorioPresencaSessao_filter.html @@ -1,6 +1,7 @@ {% extends "crud/list.html" %} {% load i18n %} {% load crispy_forms_tags %} +{% load common_tags %} {% block base_content %} {% if not filter_url %} @@ -37,7 +38,7 @@ {% for p in parlamentares %} - {{p.parlamentar}} / {{p.filiacao_atual|default:"Sem Partido"}} + {{p.parlamentar}} / {{p.parlamentar|filiacao_intervalo_filter:date_range|default:"Sem Partido"}} {{p.sessao_count}} {{p.sessao_porc}} {{p.ordemdia_count}} diff --git a/sapl/templates/sessao/blocos_resumo/lista_presenca.html b/sapl/templates/sessao/blocos_resumo/lista_presenca.html index 60b487068..56ecf9c17 100644 --- a/sapl/templates/sessao/blocos_resumo/lista_presenca.html +++ b/sapl/templates/sessao/blocos_resumo/lista_presenca.html @@ -4,7 +4,7 @@ Lista de Presença na Sessão
{% for p in presenca_sessao %} -
{{p.nome_parlamentar}} / {{ p|filiacao_epoca_filter:object }}
+
{{p.nome_parlamentar}} / {{ p|filiacao_data_filter:object.data_inicio }}
{% 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 9ddb8fe1f..ea58e160e 100644 --- a/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html +++ b/sapl/templates/sessao/blocos_resumo/lista_presenca_ordem_dia.html @@ -4,7 +4,7 @@ Lista de Presença na Ordem do Dia
{% for p in presenca_ordem %} -
{{p.nome_parlamentar}} / {{ p|filiacao_epoca_filter:object }}
+
{{p.nome_parlamentar}} / {{ p|filiacao_data_filter:object.data_inicio }}
{% endfor %}
\ No newline at end of file diff --git a/sapl/utils.py b/sapl/utils.py index 599c62aeb..e32eec329 100644 --- a/sapl/utils.py +++ b/sapl/utils.py @@ -598,22 +598,32 @@ def qs_override_django_filter(self): return self._qs -def filiacao_data(parlamentar, data): +def filiacao_data(parlamentar, data_inicio, data_fim=None): from sapl.parlamentares.models import Filiacao filiacoes_parlamentar = Filiacao.objects.filter( parlamentar=parlamentar) filiacoes = filiacoes_parlamentar.filter(Q( - data__lte=data, + data__lte=data_inicio, data_desfiliacao__isnull=True) | Q( - data__lte=data, - data_desfiliacao__gte=data)) + data__lte=data_inicio, + data_desfiliacao__gte=data_inicio)) - if filiacoes: - return filiacoes.last().partido.sigla - else: - return '' + if data_fim: + filiacoes = filiacoes | filiacoes_parlamentar.filter( + data__gte=data_inicio, + data__lte=data_fim) + + siglas = '' + + for f in filiacoes: + if not siglas: + siglas = f.partido.sigla + else: + siglas = siglas + ' | ' + f.partido.sigla + + return siglas def parlamentares_ativos(data_inicio, data_fim=None):