Browse Source

Muda a lógica de geração do relatório

pull/1398/head
Eduardo Calil 8 years ago
parent
commit
ff420c9e70
  1. 51
      sapl/base/views.py
  2. 2
      sapl/templates/base/RelatorioPresencaSessao_filter.html

51
sapl/base/views.py

@ -210,15 +210,6 @@ class RelatorioPresencaSessaoView(FilterView):
filterset_class = RelatorioPresencaSessaoFilterSet
template_name = 'base/RelatorioPresencaSessao_filter.html'
def calcular_porcentagem_presenca(self,
parlamentares,
total_sessao,
total_ordemdia):
for p in parlamentares:
p.sessao_porc = round(p.sessao_count * 100 / total_sessao, 1)
p.ordemdia_porc = round(p.ordemdia_count * 100 / total_ordemdia, 1)
return parlamentares
def get_context_data(self, **kwargs):
context = super(RelatorioPresencaSessaoView,
self).get_context_data(**kwargs)
@ -235,8 +226,6 @@ class RelatorioPresencaSessaoView(FilterView):
sufixo = 'sessao_plenaria__data_inicio__range'
param0 = {'%s' % sufixo: _range}
param1 = {'presencaordemdia__%s' % sufixo: _range}
param2 = {'sessaoplenariapresenca__%s' % sufixo: _range}
# Parlamentares com Mandato no intervalo de tempo (Ativos)
parlamentares_qs = parlamentares_ativos(
@ -257,36 +246,46 @@ class RelatorioPresencaSessaoView(FilterView):
'parlamentar_id').annotate(
sessao_count=Count('id'))
total_ordemdia = PresencaOrdemDia.objects.filter(
**param0).distinct('sessao_plenaria__id').order_by(
'sessao_plenaria__id').count()
total_sessao = context['object_list'].count()
# Completa o dicionario as informacoes parlamentar/sessao/ordem
parlamentares_presencas = []
for i, p in enumerate(parlamentares_qs):
parlamentares_presencas.append({
'parlamentar': p,
'sessao_count': 0,
'ordemdia_count': 0,
'sessao_porc': 0,
'ordemdia_porc': 0
})
try:
parlamentares_presencas[i].update({
'sessao_count': presenca_sessao.get(parlamentar_id=p.id)[1],
'ordemdia_count': presenca_ordem.get(parlamentar_id=p.id)[1]
})
sessao_count = presenca_sessao.get(parlamentar_id=p.id)[1]
except ObjectDoesNotExist:
pass
sessao_count = 0
try:
ordemdia_count = presenca_ordem.get(parlamentar_id=p.id)[1]
except ObjectDoesNotExist:
ordemdia_count = 0
total_ordemdia = PresencaOrdemDia.objects.filter(
**param0).distinct('sessao_plenaria__id').order_by(
'sessao_plenaria__id').count()
parlamentares_presencas[i].update({
'sessao_count': sessao_count,
'ordemdia_count': ordemdia_count
})
self.calcular_porcentagem_presenca(
parlamentares_presencas,
context['object_list'].count(),
total_ordemdia)
if total_sessao != 0:
parlamentares_presencas[i].update(
{'sessao_porc': round(
sessao_count * 100 / total_sessao, 1)})
if total_ordemdia != 0:
parlamentares_presencas[i].update(
{'ordemdia_porc': round(
ordemdia_count * 100 / total_ordemdia, 1)})
context['total_ordemdia'] = total_ordemdia
context['total_sessao'] = context['object_list'].count()
context['parlamentares'] = pls
context['parlamentares'] = parlamentares_presencas
context['periodo'] = (
self.request.GET['data_inicio_0'] +
' - ' + self.request.GET['data_inicio_1'])

2
sapl/templates/base/RelatorioPresencaSessao_filter.html

@ -37,7 +37,7 @@
<tbody>
{% for p in parlamentares %}
<tr>
<td><b>{{p}}</b> / {{p.filiacao_atual|default:"Sem Partido"}}</td>
<td><b>{{p.parlamentar}}</b> / {{p.filiacao_atual|default:"Sem Partido"}}</td>
<td>{{p.sessao_count}}</td>
<td>{{p.sessao_porc}}</td>
<td>{{p.ordemdia_count}}</td>

Loading…
Cancel
Save