diff --git a/sapl/base/urls.py b/sapl/base/urls.py index 005f12d71..a527b495d 100644 --- a/sapl/base/urls.py +++ b/sapl/base/urls.py @@ -31,6 +31,7 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud, ListarInconsistenciasView, ListarProtocolosDuplicadosView, ListarProtocolosComMateriasView, ListarMatProtocoloInexistenteView, + ListarParlamentaresDuplicadosView, ListarParlMandatosIntersecaoView, ListarAutoresDuplicadosView, ListarBancadaComissaoAutorExternoView, @@ -151,6 +152,9 @@ urlpatterns = [ url(r'^sistema/inconsistencias/mandato_sem_data_inicio', ListarMandatoSemDataInicioView.as_view(), name='lista_mandato_sem_data_inicio'), + url(r'^sistema/inconsistencias/parlamentares_duplicados$', + ListarParlamentaresDuplicadosView.as_view(), + name='lista_parlamentares_duplicados'), url(r'^sistema/inconsistencias/parlamentares_mandatos_intersecao$', ListarParlMandatosIntersecaoView.as_view(), name='lista_parlamentares_mandatos_intersecao'), diff --git a/sapl/base/views.py b/sapl/base/views.py index 00271babc..66d1d4800 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -955,6 +955,12 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView): len(mandato_sem_data_inicio()) ) ) + tabela.append( + ('parlamentares_duplicados', + 'Parlamentares duplicados', + len(parlamentares_duplicados()) + ) + ) tabela.append( ('parlamentares_mandatos_intersecao', 'Parlamentares com mandatos com interseção', @@ -1062,7 +1068,9 @@ class ListarBancadaComissaoAutorExternoView(PermissionRequiredMixin, ListView): def autores_duplicados(): - return [autor.values() for autor in Autor.objects.values('nome', 'tipo__descricao').annotate(count=Count('nome')).filter(count__gt=1)] + return [autor.values() for autor in Autor.objects.values( + 'nome', 'tipo__descricao').order_by( + "nome").annotate(count=Count('nome')).filter(count__gt=1)] class ListarAutoresDuplicadosView(PermissionRequiredMixin, ListView): @@ -1088,6 +1096,35 @@ class ListarAutoresDuplicadosView(PermissionRequiredMixin, ListView): return context +def parlamentares_duplicados(): + return [parlamentar.values() for parlamentar in Parlamentar.objects.values( + 'nome_parlamentar').order_by('nome_parlamentar').annotate(count=Count( + 'nome_parlamentar')).filter(count__gt=1)] + + +class ListarParlamentaresDuplicadosView(PermissionRequiredMixin, ListView): + model = get_user_model() + template_name = 'base/parlamentares_duplicados.html' + context_object_name = 'parlamentares_duplicados' + permission_required = ('base.list_appconfig',) + paginate_by = 10 + + def get_queryset(self): + return parlamentares_duplicados() + + def get_context_data(self, **kwargs): + context = super( + ListarParlamentaresDuplicadosView, 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 parlamentares_mandatos_intersecao(): intersecoes = [] diff --git a/sapl/templates/base/autores_duplicados.html b/sapl/templates/base/autores_duplicados.html index 57068375b..bcfc3c806 100644 --- a/sapl/templates/base/autores_duplicados.html +++ b/sapl/templates/base/autores_duplicados.html @@ -27,4 +27,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/bancada_comissao_autor_externo.html b/sapl/templates/base/bancada_comissao_autor_externo.html index b4471ed1c..e55a51998 100644 --- a/sapl/templates/base/bancada_comissao_autor_externo.html +++ b/sapl/templates/base/bancada_comissao_autor_externo.html @@ -31,4 +31,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/legislatura_infindavel.html b/sapl/templates/base/legislatura_infindavel.html index b2a772ecc..b6563a9e9 100644 --- a/sapl/templates/base/legislatura_infindavel.html +++ b/sapl/templates/base/legislatura_infindavel.html @@ -27,4 +27,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/lista_inconsistencias.html b/sapl/templates/base/lista_inconsistencias.html index 735dd21d1..b35ca181e 100644 --- a/sapl/templates/base/lista_inconsistencias.html +++ b/sapl/templates/base/lista_inconsistencias.html @@ -17,4 +17,5 @@ {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/mandato_sem_data_inicio.html b/sapl/templates/base/mandato_sem_data_inicio.html index 110995ad2..1eb0bc1b9 100644 --- a/sapl/templates/base/mandato_sem_data_inicio.html +++ b/sapl/templates/base/mandato_sem_data_inicio.html @@ -27,4 +27,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/materias_protocolo_inexistente.html b/sapl/templates/base/materias_protocolo_inexistente.html index 40bf34b78..08ac21318 100644 --- a/sapl/templates/base/materias_protocolo_inexistente.html +++ b/sapl/templates/base/materias_protocolo_inexistente.html @@ -29,4 +29,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/parlamentares_duplicados.html b/sapl/templates/base/parlamentares_duplicados.html new file mode 100644 index 000000000..690cdb07e --- /dev/null +++ b/sapl/templates/base/parlamentares_duplicados.html @@ -0,0 +1,31 @@ +{% extends "base.html" %} +{% load common_tags %} +{% block base_content %} +
+

Lista de Parlamentares Duplicados

+ {% if not parlamentares_duplicados %} +

{{ NO_ENTRIES_MSG }}

+ {% else %} + + + + + + + + + {% for parlamentar, quantidade in parlamentares_duplicados %} + + + + + {% endfor %} + +
Nome do ParlamentarQuantidade
+ {{ parlamentar }} + {{ quantidade }}
+ {% endif %} +
+ {% include 'paginacao.html'%} +
+{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/parlamentares_mandatos_intersecao.html b/sapl/templates/base/parlamentares_mandatos_intersecao.html index 8451a9e3e..e5c74c969 100644 --- a/sapl/templates/base/parlamentares_mandatos_intersecao.html +++ b/sapl/templates/base/parlamentares_mandatos_intersecao.html @@ -29,4 +29,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/protocolos_com_materias.html b/sapl/templates/base/protocolos_com_materias.html index 29dd84bf9..c09fbf138 100644 --- a/sapl/templates/base/protocolos_com_materias.html +++ b/sapl/templates/base/protocolos_com_materias.html @@ -25,4 +25,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file diff --git a/sapl/templates/base/protocolos_duplicados.html b/sapl/templates/base/protocolos_duplicados.html index e5217c908..b94d5e551 100644 --- a/sapl/templates/base/protocolos_duplicados.html +++ b/sapl/templates/base/protocolos_duplicados.html @@ -27,4 +27,5 @@ {% endif %} {% include 'paginacao.html'%} +
{% endblock base_content %} \ No newline at end of file