From 9b56bc46758dfc383926afa4958419fdaca7f9cd Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Mon, 24 Jun 2019 15:05:31 -0300 Subject: [PATCH] Todos os campos como opcionais e tratamento de erros --- sapl/base/forms.py | 1 - sapl/base/views.py | 61 +++++++++++++++---- .../base/RelatorioPresencaSessao_filter.html | 12 ++-- 3 files changed, 56 insertions(+), 18 deletions(-) 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}} - + + @@ -42,7 +43,8 @@ {% for p in parlamentares %} - + + @@ -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); } })
Nome Parlamentar / PartidoTitularTitular?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}}