diff --git a/sapl/base/forms.py b/sapl/base/forms.py
index 719c9b1ac..5d826d5f1 100644
--- a/sapl/base/forms.py
+++ b/sapl/base/forms.py
@@ -876,7 +876,6 @@ class RelatorioPresencaSessaoFilterSet(django_filters.FilterSet):
*args, **kwargs)
self.filters['data_inicio'].label = 'Período (Inicial - Final)'
- self.form.fields['data_inicio'].required = True
row1 = to_row([('data_inicio', 12)])
row2 = to_row([('legislatura', 6),
diff --git a/sapl/base/views.py b/sapl/base/views.py
index cfb9eb06a..bc4f9bcd0 100644
--- a/sapl/base/views.py
+++ b/sapl/base/views.py
@@ -342,28 +342,63 @@ class RelatorioPresencaSessaoView(FilterView):
# Verifica se os campos foram preenchidos
if not self.filterset.form.is_valid():
return context
+
+ cd = self.filterset.form.cleaned_data
+ if not cd['data_inicio'] and not cd['sessao_legislativa'] \
+ and not cd['legislatura']:
+ msg = _("Formulário inválido! Preencha pelo menos algum dos campos.")
+ messages.error(self.request, msg)
+ return context
+
+ # Caso a data tenha sido preenchida, verifica se foi preenchida corretamente
+ if ('data_inicio_0' in self.request.GET) and self.request.GET['data_inicio_0'] and \
+ not(('data_inicio_1' in self.request.GET) and self.request.GET['data_inicio_1']):
+ msg = _("Formulário inválido! Preencha a data do Período Final.")
+ messages.error(self.request, msg)
+ return context
+
+ if not(('data_inicio_0' in self.request.GET) and self.request.GET['data_inicio_0']) and \
+ ('data_inicio_1' in self.request.GET) and self.request.GET['data_inicio_1']:
+ msg = _("Formulário inválido! Preencha a data do Período Inicial.")
+ messages.error(self.request, msg)
+ return context
+
+ param0 = {}
- # if 'salvar' not in self.request.GET:
- where = context['object_list'].query.where
- _range = where.children[0].rhs
+ legislatura_pk = self.request.GET.get('legislatura')
+ if legislatura_pk:
+ param0['sessao_plenaria__legislatura_id'] = legislatura_pk
+ legislatura = Legislatura.objects.get(id=legislatura_pk)
+ context['legislatura'] = legislatura
+
+ sessao_legislativa_pk = self.request.GET.get('sessao_legislativa')
+ if sessao_legislativa_pk:
+ param0['sessao_plenaria__sessao_legislativa_id'] = sessao_legislativa_pk
+ sessao_legislativa = SessaoLegislativa.objects.get(id=sessao_legislativa_pk)
+ context['sessao_legislativa'] = sessao_legislativa
- sufixo = 'sessao_plenaria__data_inicio__range'
- param0 = {'%s' % sufixo: _range}
+ _range = []
+ if ('data_inicio_0' in self.request.GET) and self.request.GET['data_inicio_0'] and \
+ ('data_inicio_1' in self.request.GET) and self.request.GET['data_inicio_1']:
+ where = context['object_list'].query.where
+ _range = where.children[0].rhs
+
+ elif legislatura_pk and not sessao_legislativa_pk:
+ _range = [legislatura.data_inicio, legislatura.data_fim]
+
+ elif sessao_legislativa_pk:
+ _range = [sessao_legislativa.data_inicio, sessao_legislativa.data_fim]
+
+ param0 = {'sessao_plenaria__data_inicio__range': _range}
+
+
# Parlamentares com Mandato no intervalo de tempo (Ativos)
parlamentares_qs = parlamentares_ativos(
_range[0], _range[1]).order_by('nome_parlamentar')
parlamentares_id = parlamentares_qs.values_list(
'id', flat=True)
- sessao_legislativa_pk = self.request.GET.get('sessao_legislativa')
- if sessao_legislativa_pk:
- param0['sessao_plenaria__sessao_legislativa_id'] = sessao_legislativa_pk
-
- legislatura_pk = self.request.GET.get('legislatura')
- if legislatura_pk:
- param0['sessao_plenaria__legislatura_id'] = legislatura_pk
-
# Presenças de cada Parlamentar em Sessões
presenca_sessao = SessaoPlenariaPresenca.objects.filter(**param0).values_list(
'parlamentar_id').annotate(
diff --git a/sapl/templates/base/RelatorioPresencaSessao_filter.html b/sapl/templates/base/RelatorioPresencaSessao_filter.html
index c8881e144..f4d9b71a0 100644
--- a/sapl/templates/base/RelatorioPresencaSessao_filter.html
+++ b/sapl/templates/base/RelatorioPresencaSessao_filter.html
@@ -20,14 +20,15 @@
PERÍODO: {{periodo}}
- Sessão Legislativa: {{sessao_legislativa}}
Legislatura: {{legislatura}}
+ Sessão Legislativa: {{sessao_legislativa}}
TOTAIS NO PERÍODO - SESSÕES: {{total_sessao}} - ORDENS DO DIA: {{total_ordemdia}}
| Nome Parlamentar / Partido | -Titular | +Titular? | +Ativo? | Sessão | Ordem do Dia | ||
|---|---|---|---|---|---|---|---|
| {{p.parlamentar}} / {{p.parlamentar|filiacao_intervalo_filter:date_range|default:"Sem Partido"}} | -{%if p.titular %} Sim {% else %} Não {% endif %} | +{% if p.titular %} Sim {% else %} Não {% endif %} | +{% if p.parlamentar.ativo %} Sim {% else %} Não {% endif %} | {{p.sessao_count}} | {{p.sessao_porc}} | {{p.ordemdia_count}} | @@ -77,7 +79,8 @@ if (data) { $("#id_sessao_legislativa").children().remove(); if (data.sessoes_legislativas.length > 1) { - $("#id_sessao_legislativa").append(""); + sel = $("#id_sessao_legislativa").append(""); + sel.children().last().attr("value", ""); } $.each(data.sessoes_legislativas, function(idx, obj) { $("#id_sessao_legislativa") @@ -92,6 +95,7 @@ $.each(original_options, function(idx, obj) { $("#id_sessao_legislativa").append(obj); }); + $("#id_sessao_legislativa").children().first().attr('selected', true); } })|