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 @@
{% 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 @@
{% 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):