From 43acff6531e774c19a3332d5b71633d523f19564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Wed, 9 Oct 2019 11:16:13 -0300 Subject: [PATCH] =?UTF-8?q?Ajusta=20a=20performance=20da=20lista=20de=20Ma?= =?UTF-8?q?t=C3=A9rias=20em=20Tramita=C3=A7=C3=A3o=20em=20uma=20Comiss?= =?UTF-8?q?=C3=A3o=20(#2965)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refatora a função lista_materias_comissao * Refatoração --- sapl/comissoes/views.py | 24 ++++++++----------- .../comissoes/materias_em_tramitacao.html | 24 ++++++++++++------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py index 0b5ca756d..35d066d3c 100644 --- a/sapl/comissoes/views.py +++ b/sapl/comissoes/views.py @@ -18,11 +18,12 @@ from sapl.comissoes.forms import (ComissaoForm, ComposicaoForm, DocumentoAcessorioCreateForm, DocumentoAcessorioEditForm, ParticipacaoCreateForm, ParticipacaoEditForm, - PeriodoForm, ReuniaoForm, PautaReuniaoForm) + PautaReuniaoForm, PeriodoForm, ReuniaoForm) from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, PermissionRequiredForAppCrudMixin) -from sapl.materia.models import MateriaLegislativa, Tramitacao, PautaReuniao +from sapl.materia.models import (MateriaLegislativa, Tramitacao, PautaReuniao, + MateriaEmTramitacao) from .models import (CargoComissao, Comissao, Composicao, DocumentoAcessorio, Participacao, Periodo, Reuniao, TipoComissao) @@ -165,17 +166,12 @@ class ComissaoCrud(Crud): return super(Crud.UpdateView, self).form_valid(form) +# Essa função retorna objetos MateriaEmTramitacao def lista_materias_comissao(comissao_pk): - ts = Tramitacao.objects.order_by( - 'materia_id', '-data_tramitacao', '-id').annotate( - comissao=F('unidade_tramitacao_destino__comissao')).distinct( - 'materia').values_list('materia', 'comissao') - - ts = [m for (m,c) in ts if c == int(comissao_pk)] - - materias = MateriaLegislativa.objects.filter( - pk__in=ts).order_by('tipo', '-ano', '-numero') - + materias = MateriaEmTramitacao.objects.filter( + tramitacao__unidade_tramitacao_destino__comissao=comissao_pk + ).order_by('materia__tipo', '-materia__ano', '-materia__numero') + return materias @@ -184,13 +180,13 @@ class MateriasTramitacaoListView(ListView): paginate_by = 10 def get_queryset(self): - return lista_materias_comissao(self.kwargs['pk']) + return list(lista_materias_comissao(self.kwargs['pk'])) def get_context_data(self, **kwargs): context = super( MateriasTramitacaoListView, self).get_context_data(**kwargs) context['object'] = Comissao.objects.get(id=self.kwargs['pk']) - context['qtde'] = self.object_list.count() + context['qtde'] = len(self.object_list) return context diff --git a/sapl/templates/comissoes/materias_em_tramitacao.html b/sapl/templates/comissoes/materias_em_tramitacao.html index 759ff7e20..2e60f2efc 100644 --- a/sapl/templates/comissoes/materias_em_tramitacao.html +++ b/sapl/templates/comissoes/materias_em_tramitacao.html @@ -11,16 +11,22 @@ {% block detail_content %}
- {{comissao}} - Há {{qtde}} matéria(s) em tramitação nesta unidade.

- {% for materia in page_obj %} - - {{materia.tipo.sigla}} {{materia.numero}} {{materia.ano}} - {{materia.tipo}} + {{ comissao }} + Há {{ qtde }} matéria(s) em tramitação nesta unidade.

+ {% for materia_em_tramitacao in page_obj %} +
+ {{ materia_em_tramitacao.materia.tipo.sigla }} {{ materia_em_tramitacao.materia.numero }} + {{ materia_em_tramitacao.materia.ano }} - {{ materia_em_tramitacao.materia.tipo }}
- {{materia}}
- Autor: {{materia.autoria_set.first.autor.nome}}
- Situação: {{materia.tramitacao_set.last.status.descricao}}
- Data Fim Prazo da Última Tramitação: {% if materia.tramitacao_set.last.data_fim_prazo %} {{materia.tramitacao_set.last.data_fim_prazo}} {% else %} Não definida. {% endif %}
+ {{ materia_em_tramitacao.materia }}
+ Autor: {{ materia_em_tramitacao.materia.autoria_set.first.autor.nome }}
+ Situação: {{ materia_em_tramitacao.tramitacao.status.descricao }}
+ Data Fim Prazo da Última Tramitação: + {% if materia_em_tramitacao.tramitacao.data_fim_prazo %} + {{ materia_em_tramitacao.tramitacao.data_fim_prazo }} + {% else %} + Não definida. + {% endif %}

{% endfor %}