Browse Source

Permite sel de ausencia parcial no per. selecionado

Na versão anterior do queryset era retornado apenas parlamentares que
possuissem ao menos 1 presença no período selecionado. Na versão deste
commit, passa estar no resultado parlamentares com ausencia total de
tipo no período compreendido. Total de tipo (sessao_count ou ordem_count)
pois o exclude no final do queryset remove as ausências totais.
Ausências totais (os dois juntos) é uma informação relevante
a ser dada, porém, seria mais produtiva com um filtro específico de
legislatura agregado ao período ou não. Veja, como não existe restrição
de legislatura, parlamentares de 50 anos atrás, sairia no relatório sem
o exclude no final do queryset, coisa esta um tanto poluidora e
irrelevante, em contraste com ausências totais na legislatura atual, por
exemplo. Não há como esses antigos parlamentares (presentes na base para
registro histórico) não aparecerem a não ser com um filtro específico
para legislatura ou intervalo de legislaturas.
pull/587/head
LeandroRoberto 8 years ago
parent
commit
545da58797
  1. 3
      .gitignore
  2. 23
      sapl/base/views.py

3
.gitignore

@ -82,6 +82,9 @@ target/
.vagrant
*.sublime-project
*.sublime-workspace
.ipynb_checkpoints/
*.ipynb
# specific to this project
collected_static

23
sapl/base/views.py

@ -80,15 +80,20 @@ class RelatorioPresencaSessaoView(FilterView):
param2 = {'sessaoplenariapresenca__%s' % sufixo: _range}
pls = Parlamentar.objects.filter(
Q(**param1) & Q(**param2)).annotate(
sessao_count=Count(
'sessaoplenariapresenca__sessao_plenaria__data_inicio',
distinct=True),
ordemdia_count=Count(
'presencaordemdia__sessao_plenaria',
distinct=True),
sessao_porc=Count(0),
ordemdia_porc=Count(0))
(Q(**param1) | Q(presencaordemdia__isnull=True)) &
(Q(**param2) | Q(sessaoplenariapresenca__isnull=True))
).annotate(
sessao_count=Count(
'sessaoplenariapresenca__sessao_plenaria',
distinct=True),
ordemdia_count=Count(
'presencaordemdia__sessao_plenaria',
distinct=True),
sessao_porc=Count(0),
ordemdia_porc=Count(0)
).exclude(
sessao_count=0,
ordemdia_count=0)
total_ordemdia = OrdemDia.objects.order_by(
'sessao_plenaria').filter(**param0).distinct(

Loading…
Cancel
Save