diff --git a/sapl/base/urls.py b/sapl/base/urls.py index 834f8d89a..fb7b81d5f 100644 --- a/sapl/base/urls.py +++ b/sapl/base/urls.py @@ -155,7 +155,6 @@ urlpatterns = [ ListarBancadaComissaoAutorExternoView.as_view(), name='lista_bancada_comissao_autor_externo'), - # todos os sublinks de sistema devem vir acima deste url(r'^sistema/$', permission_required('base.view_tabelas_auxiliares') (TemplateView.as_view(template_name='sistema.html')), diff --git a/sapl/base/views.py b/sapl/base/views.py index 0d44539d0..7f80ae0f9 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -1460,16 +1460,91 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView): tabela.append( ('autores_duplicados', 'Autores duplicados', - len(autores_duplicados()) - ) + len(autores_duplicados()) + ) + ) + tabela.append( + ('bancada_comissao_autor_externo', + 'Bancadas e Comissões com autor externo', + len(bancada_comissao_autor_externo()) + ) ) return tabela +def bancada_comissao_autor_externo(): + lista_bancada_autor_externo = [] + lista_comissao_autor_externo = [] + + tipo_autor_externo = TipoAutor.objects.filter(descricao='Externo') + + for bancada in Bancada.objects.all(): + autor_externo = bancada.autor.filter(tipo=tipo_autor_externo) + + # if len(autor_externo) == 1: + + if len(autor_externo) > 0: + q_autor_externo = bancada.autor.get(tipo=tipo_autor_externo) + lista_bancada_autor_externo.append( + (q_autor_externo, bancada, 'Bancada') + ) + + # elif len(autor_externo) > 1: + # q_autor_externo = bancada.autor.get(tipo=tipo_autor_externo) + # for autor in q_autor_externo: + # lista_bancada_autor_externo.append( + # (q_autor_externo, bancada, 'Bancada') + # ) + + for comissao in Comissao.objects.all(): + autor_externo = comissao.autor.filter(tipo=tipo_autor_externo) + + # if len(autor_externo) == 1: + + if len(autor_externo) > 0: + q_autor_externo = comissao.autor.get(tipo=tipo_autor_externo) + lista_comissao_autor_externo.append( + (q_autor_externo, comissao, 'Comissão') + ) + + # elif len(autor_externo) > 1: + # q_autor_externo = comissao.autor.get(tipo=tipo_autor_externo) + # for autor in q_autor_externo: + # lista_comissao_autor_externo.append( + # (q_autor_externo, comissao, 'Comissão') + # ) + + return lista_bancada_autor_externo + lista_comissao_autor_externo + + +class ListarBancadaComissaoAutorExternoView(PermissionRequiredMixin, ListView): + model = get_user_model() + template_name = 'base/bancada_comissao_autor_externo.html' + context_object_name = 'bancada_comissao_autor_externo' + permission_required = ('base.list_appconfig',) + paginate_by = 10 + + def get_queryset(self): + return bancada_comissao_autor_externo() + + def get_context_data(self, **kwargs): + context = super( + ListarBancadaComissaoAutorExternoView, 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 encontrado.' + return context + + def autores_duplicados(): autores = {} - for a in Autor.objects.all(): + for a in Autor.objects.all().order_by('nome'): key = "{}".format(a.nome) val = autores.get(key, list()) val.append(a) @@ -1504,7 +1579,7 @@ class ListarAutoresDuplicadosView(PermissionRequiredMixin, ListView): def parlamentares_mandatos_intersecao(): intersecoes = [] - for parlamentar in Parlamentar.objects.all(): + for parlamentar in Parlamentar.objects.all().order_by('nome_completo'): mandatos = parlamentar.mandato_set.all() length = len(mandatos) if mandatos and length > 1: