From b4d8a4e780355fd8fbe79a8c7123c9af024c1e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Tue, 8 Jan 2019 18:09:07 -0200 Subject: [PATCH] =?UTF-8?q?Acelerar=20identifica=C3=A7=C3=A3o=20de=20proto?= =?UTF-8?q?colos=20com=20mat=C3=A9rias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/base/views.py | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/sapl/base/views.py b/sapl/base/views.py index 833a280fe..378d7cf81 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -1658,13 +1658,34 @@ class ListarMatProtocoloInexistenteView(PermissionRequiredMixin, ListView): def protocolos_materias(): - protocolos = [] - for protocolo in Protocolo.objects.order_by('-ano', 'numero'): - materias_protocolo = MateriaLegislativa.objects.filter( - ano=protocolo.ano, numero_protocolo=protocolo.numero) - if len(materias_protocolo) > 1: - protocolos.append((protocolo, len(materias_protocolo))) - return protocolos + lista_protocolos_materias = [] + protocolos = {} + + for m in MateriaLegislativa.objects.order_by('-ano', 'numero_protocolo'): + key = "{}/{}".format(m.numero_protocolo, m.ano) + val = protocolos.get(key, list()) + val.append(m) + protocolos[key] = val + + for k, v in protocolos.items(): + if 'None' not in k: + if Protocolo.objects.filter(numero=int(k.split('/')[0]), + ano=int(k.split('/')[1]) + ).exists(): + if len(v) > 1: + p = Protocolo.objects.filter(numero=int(k.split('/')[0]), + ano=int(k.split('/')[1])) + lista_protocolos_materias.append((p[0], len(v))) + + return lista_protocolos_materias + + # protocolos = [] + # for protocolo in Protocolo.objects.order_by('-ano', 'numero'): + # materias_protocolo = MateriaLegislativa.objects.filter( + # ano=protocolo.ano, numero_protocolo=protocolo.numero) + # if len(materias_protocolo) > 1: + # protocolos.append((protocolo, len(materias_protocolo))) + # return protocolos class ListarProtocolosMateriasView(PermissionRequiredMixin, ListView):