Browse Source

HOT-FIX: Desempenho rel. pauta sessao

pull/3251/head
João Rodrigues 4 years ago
parent
commit
db2fee81b1
  1. 33
      sapl/sessao/views.py

33
sapl/sessao/views.py

@ -3580,17 +3580,20 @@ class PautaSessaoDetailView(DetailView):
# ===================================================================== # =====================================================================
# Matérias Expediente # Matérias Expediente
materias_expediente = [] materias_expediente = []
for m in ExpedienteMateria.objects.select_related("materia").filter(sessao_plenaria_id=self.object.id): for m in ExpedienteMateria.objects \
rv = m.registrovotacao_set.all() .prefetch_related('registrovotacao_set') \
.select_related("materia", "materia__tipo") \
.filter(sessao_plenaria_id=self.object.id):
rv = m.registrovotacao_set.first()
if rv: if rv:
resultado = rv[0].tipo_resultado_votacao.nome resultado = rv.tipo_resultado_votacao.nome
resultado_observacao = rv[0].observacao resultado_observacao = rv.observacao
else: else:
resultado = _('Matéria não votada') resultado = _('Matéria não votada')
resultado_observacao = _(' ') resultado_observacao = _(' ')
ultima_tramitacao = m.materia.tramitacao_set.last() ultima_tramitacao = m.materia.tramitacao_set.order_by('-data_tramitacao').select_related('status').first()
numeracao = Numeracao.objects.filter(materia=m.materia).first() numeracao = m.materia.numeracao_set.first()
materias_expediente.append({ materias_expediente.append({
'id': m.materia_id, 'id': m.materia_id,
@ -3602,9 +3605,8 @@ class PautaSessaoDetailView(DetailView):
'resultado_observacao': resultado_observacao, 'resultado_observacao': resultado_observacao,
'situacao': ultima_tramitacao.status if ultima_tramitacao else _("Não informada"), 'situacao': ultima_tramitacao.status if ultima_tramitacao else _("Não informada"),
'processo': f'{str(numeracao.numero_materia)}/{str(numeracao.ano_materia)}' if numeracao else '-', 'processo': f'{str(numeracao.numero_materia)}/{str(numeracao.ano_materia)}' if numeracao else '-',
'autor': [str(x.autor) for x in Autoria.objects.select_related("autor").filter(materia_id=m.materia_id)] 'autor': [str(x.autor) for x in m.materia.autoria_set.select_related('autor').all()]
}) })
context.update({'materia_expediente': materias_expediente}) context.update({'materia_expediente': materias_expediente})
# ===================================================================== # =====================================================================
# Expedientes # Expedientes
@ -3627,18 +3629,21 @@ class PautaSessaoDetailView(DetailView):
# ===================================================================== # =====================================================================
# Matérias Ordem do Dia # Matérias Ordem do Dia
materias_ordem = [] materias_ordem = []
for o in OrdemDia.objects.select_related("materia").filter(sessao_plenaria_id=self.object.id): for o in OrdemDia.objects \
.prefetch_related('registrovotacao_set') \
.select_related("materia", "materia__tipo") \
.filter(sessao_plenaria_id=self.object.id):
# Verificar resultado # Verificar resultado
rv = o.registrovotacao_set.all() rv = o.registrovotacao_set.first()
if rv: if rv:
resultado = rv[0].tipo_resultado_votacao.nome resultado = rv.tipo_resultado_votacao.nome
resultado_observacao = rv[0].observacao resultado_observacao = rv.observacao
else: else:
resultado = _('Matéria não votada') resultado = _('Matéria não votada')
resultado_observacao = _(' ') resultado_observacao = _(' ')
ultima_tramitacao = o.materia.tramitacao_set.last() ultima_tramitacao = o.materia.tramitacao_set.order_by('-data_tramitacao').first()
numeracao = Numeracao.objects.filter(materia=o.materia).first() numeracao = o.materia.numeracao_set.first()
materias_ordem.append({ materias_ordem.append({
'id': o.materia_id, 'id': o.materia_id,

Loading…
Cancel
Save