Browse Source

Todos os campos como opcionais e tratamento de erros

pull/2842/head
Cesar Carvalho 7 years ago
parent
commit
9b56bc4675
  1. 1
      sapl/base/forms.py
  2. 61
      sapl/base/views.py
  3. 12
      sapl/templates/base/RelatorioPresencaSessao_filter.html

1
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),

61
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(

12
sapl/templates/base/RelatorioPresencaSessao_filter.html

@ -20,14 +20,15 @@
</div>
<br /><br /><br /><br />
<b>PERÍODO: {{periodo}}</b><br />
<b>Sessão Legislativa: {{sessao_legislativa}}</b><br />
<b>Legislatura: {{legislatura}}</b><br />
<b>Sessão Legislativa: {{sessao_legislativa}}</b><br />
<b>TOTAIS NO PERÍODO - SESSÕES: {{total_sessao}} - ORDENS DO DIA: {{total_ordemdia}}</b>
<table class="table table-bordered table-hover presenca_table">
<thead class="thead-default" align="center">
<tr class="active">
<th rowspan="2">Nome Parlamentar / Partido</th>
<th rowspan="2">Titular</th>
<th rowspan="2">Titular?</th>
<th rowspan="2">Ativo?</th>
<th colspan="2">Sessão</th>
<th colspan="2">Ordem do Dia</th>
</tr>
@ -42,7 +43,8 @@
{% for p in parlamentares %}
<tr>
<td><b>{{p.parlamentar}}</b> / {{p.parlamentar|filiacao_intervalo_filter:date_range|default:"Sem Partido"}}</td>
<td>{%if p.titular %} Sim {% else %} Não {% endif %}</td>
<td>{% if p.titular %} Sim {% else %} Não {% endif %}</td>
<td>{% if p.parlamentar.ativo %} Sim {% else %} Não {% endif %}</td>
<td>{{p.sessao_count}}</td>
<td>{{p.sessao_porc}}</td>
<td>{{p.ordemdia_count}}</td>
@ -77,7 +79,8 @@
if (data) {
$("#id_sessao_legislativa").children().remove();
if (data.sessoes_legislativas.length > 1) {
$("#id_sessao_legislativa").append("<option>---------</option>");
sel = $("#id_sessao_legislativa").append("<option>---------</option>");
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);
}
})

Loading…
Cancel
Save