From 935a224949af77b766c3e0b3794f9e8dffd83650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Mon, 17 Dec 2018 18:00:11 -0200 Subject: [PATCH] =?UTF-8?q?Identificar=20mat=C3=A9rias=20com=20protocolos?= =?UTF-8?q?=20inexistentes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/base/urls.py | 3 ++ sapl/base/views.py | 41 +++++++++++++++++++ .../materias_com_protocolo_inexistente.html | 34 +++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 sapl/templates/base/materias_com_protocolo_inexistente.html diff --git a/sapl/base/urls.py b/sapl/base/urls.py index a2e8dd33a..257f76ea7 100644 --- a/sapl/base/urls.py +++ b/sapl/base/urls.py @@ -137,6 +137,9 @@ urlpatterns = [ url(r'^sistema/inconsistencias/protocolos_com_materias$', ListarProtocolosComMateriasView.as_view(), name='lista_protocolos_com_materias'), + url(r'^sistema/inconsistencias/materias_com_protocolo_inexistente$', + ListarMateriasCProtocoloInexistenteV.as_view(), + name='lista_materias_com_protocolo_inexistente'), # todos os sublinks de sistema devem vir acima deste url(r'^sistema/$', permission_required('base.view_tabelas_auxiliares') diff --git a/sapl/base/views.py b/sapl/base/views.py index dd94ac8d2..e69cbdf71 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -934,10 +934,51 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView): 'Protocolos que excedem o limite de matérias vinculadas', len(protocolos_com_materias())) ) + tabela.append( + ('materias_com_protocolo_inexistente', + 'Matérias Legislativas com protocolo inexistente', + len(materias_com_protocolo_inexistente()) + ) + ) return tabela +def materias_com_protocolo_inexistente(): + materias = [] + for materia in MateriaLegislativa.objects.all().order_by('-ano'): + if materia.numero_protocolo: + exists = Protocolo.objects.filter( + ano=materia.ano, numero=materia.numero_protocolo).exists() + if not exists: + materias.append( + (materia, materia.ano, materia.numero_protocolo)) + return materias + + +class ListarMateriasCProtocoloInexistenteV(PermissionRequiredMixin, ListView): + model = get_user_model() + template_name = 'base/materias_com_protocolo_inexistente.html' + context_object_name = 'materias_com_protocolo_inexistente' + permission_required = ('base.list_appconfig',) + paginate_by = 10 + + def get_queryset(self): + return materias_com_protocolo_inexistente() + + def get_context_data(self, **kwargs): + context = super( + ListarProtocolosComMateriasView, 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' + ] = '--.' + return context + + def protocolos_com_materias(): protocolos = [] for protocolo in Protocolo.objects.all(): diff --git a/sapl/templates/base/materias_com_protocolo_inexistente.html b/sapl/templates/base/materias_com_protocolo_inexistente.html new file mode 100644 index 000000000..3ef14d3a1 --- /dev/null +++ b/sapl/templates/base/materias_com_protocolo_inexistente.html @@ -0,0 +1,34 @@ +{% extends "base.html" %} +{% load i18n %} +{% load tz %} +{% load common_tags %} +{% block base_content %} +
+

Lista de Matérias Legislativas com Protocolo Inexistente

+ {% if not materias_com_protocolo_inexistente %} +

{{ NO_ENTRIES_MSG }}

+ {% else %} + + + + + + + + + + {% for materia, ano, numero_protocolo in materias_com_protocolo_inexistente %} + + + + + + {% endfor %} + +
Matéria LegislativaAnoNúmero Protocolo
+ {{ materia }} + {{ ano }}{{ numero_protocolo }}
+ {% endif %} +
+ {% include 'paginacao.html'%} +{% endblock base_content %} \ No newline at end of file