diff --git a/sapl/base/urls.py b/sapl/base/urls.py
index a527b495d..79769ee09 100644
--- a/sapl/base/urls.py
+++ b/sapl/base/urls.py
@@ -32,11 +32,12 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
ListarProtocolosComMateriasView,
ListarMatProtocoloInexistenteView,
ListarParlamentaresDuplicadosView,
+ ListarFiliacoesSemDataFiliacaoView,
+ ListarMandatoSemDataInicioView,
ListarParlMandatosIntersecaoView,
ListarAutoresDuplicadosView,
ListarBancadaComissaoAutorExternoView,
- ListarLegislaturaInfindavelView,
- ListarMandatoSemDataInicioView)
+ ListarLegislaturaInfindavelView)
app_name = AppConfig.name
@@ -149,6 +150,9 @@ urlpatterns = [
url(r'^sistema/inconsistencias/materias_protocolo_inexistente$',
ListarMatProtocoloInexistenteView.as_view(),
name='lista_materias_protocolo_inexistente'),
+ url(r'^sistema/inconsistencias/filiacoes_sem_data_filiacao$',
+ ListarFiliacoesSemDataFiliacaoView.as_view(),
+ name='lista_filiacoes_sem_data_filiacao'),
url(r'^sistema/inconsistencias/mandato_sem_data_inicio',
ListarMandatoSemDataInicioView.as_view(),
name='lista_mandato_sem_data_inicio'),
diff --git a/sapl/base/views.py b/sapl/base/views.py
index 66d1d4800..0f4233abd 100644
--- a/sapl/base/views.py
+++ b/sapl/base/views.py
@@ -37,7 +37,7 @@ from sapl.crud.base import CrudAux, make_pagination
from sapl.materia.models import (Autoria, MateriaLegislativa, Proposicao,
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
-from sapl.parlamentares.models import Parlamentar, Legislatura, Mandato
+from sapl.parlamentares.models import Parlamentar, Legislatura, Mandato, Filiacao
from sapl.protocoloadm.models import Protocolo
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca, Bancada)
@@ -949,6 +949,12 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView):
len(materias_protocolo_inexistente())
)
)
+ tabela.append(
+ ('filiacoes_sem_data_filiacao',
+ 'Filiações sem data filiação',
+ len(filiacoes_sem_data_filiacao())
+ )
+ )
tabela.append(
('mandato_sem_data_inicio',
'Mandatos sem data inicial',
@@ -1200,6 +1206,34 @@ class ListarMandatoSemDataInicioView(PermissionRequiredMixin, ListView):
return context
+def filiacoes_sem_data_filiacao():
+ return Filiacao.objects.filter(data__isnull=True).order_by('parlamentar')
+
+
+class ListarFiliacoesSemDataFiliacaoView(PermissionRequiredMixin, ListView):
+ model = get_user_model()
+ template_name = 'base/filiacoes_sem_data_filiacao.html'
+ context_object_name = 'filiacoes_sem_data_filiacao'
+ permission_required = ('base.list_appconfig',)
+ paginate_by = 10
+
+ def get_queryset(self):
+ return filiacoes_sem_data_filiacao()
+
+ def get_context_data(self, **kwargs):
+ context = super(
+ ListarFiliacoesSemDataFiliacaoView, 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'
+ ] = 'Nenhuma encontrada.'
+ return context
+
+
def materias_protocolo_inexistente():
materias = []
for materia in MateriaLegislativa.objects.filter(numero_protocolo__isnull=False).order_by('-ano', 'numero'):
@@ -1281,6 +1315,7 @@ def protocolos_duplicados():
return [(v[0], len(v)) for (k, v) in protocolos.items() if len(v) > 1]
+
class ListarProtocolosDuplicadosView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/protocolos_duplicados.html'
diff --git a/sapl/templates/base/autores_duplicados.html b/sapl/templates/base/autores_duplicados.html
index bcfc3c806..a7861aecd 100644
--- a/sapl/templates/base/autores_duplicados.html
+++ b/sapl/templates/base/autores_duplicados.html
@@ -3,6 +3,7 @@
{% block base_content %}