diff --git a/sapl/base/views.py b/sapl/base/views.py index 0e930444b..0912b8772 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -1098,6 +1098,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'