From a5d006cbec7afd3ad8ee7bf6e3613bb962aca726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Fri, 14 Dec 2018 17:52:35 -0200 Subject: [PATCH] =?UTF-8?q?Adicionar=20identifica=C3=A7=C3=A3o=20de=20prot?= =?UTF-8?q?ocolos=20duplicados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/base/views.py | 49 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/sapl/base/views.py b/sapl/base/views.py index d126561e5..45d287279 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -1279,6 +1279,55 @@ class ListarProtocolosDuplicadosView(PermissionRequiredMixin, ListView): return context +class ListarInconsistenciasView(PermissionRequiredMixin, ListView): + model = get_user_model() + template_name = 'base/lista_inconsistencias.html' + context_object_name = 'tabela_inconsistencias' + permission_required = ('base.list_appconfig',) + + def get_queryset(self): + tabela = {} + tabela['Protocolos Duplicados'] = len(protocolo_duplicados()) + + t = tabela.items() + return t + + +def protocolo_duplicados(): + protocolos = {} + for p in Protocolo.objects.all(): + key = "{}/{}".format(p.numero, p.ano) + val = protocolos.get(key, list()) + val.append(p) + protocolos[key] = val + + lista_duplicados = [v for (k, v) in protocolos.items() if len(v) > 1] + return [(v[0], len(v)) for v in lista_duplicados] + + +class ListarProtocolosDuplicadosView(PermissionRequiredMixin, ListView): + model = get_user_model() + template_name = 'base/protocolos_duplicados.html' + context_object_name = 'protocolos_duplicados' + permission_required = ('base.list_appconfig',) + paginate_by = 10 + + def get_queryset(self): + return protocolo_duplicados() + + def get_context_data(self, **kwargs): + context = super( + ListarProtocolosDuplicadosView, self).get_context_data(**kwargs) + paginator = context['paginator'] + page_obj = context['page_obj'] + context['page_range'] = make_pagination( + page_obj.number, paginator.num_pages) + context[ + 'NO_ENTRIES_MSG' + ] = 'Nenhum protocolo duplicado cadastrado no sistema.' + return context + + class ListarUsuarioView(PermissionRequiredMixin, ListView): model = get_user_model() template_name = 'auth/user_list.html'