diff --git a/sapl/base/views.py b/sapl/base/views.py index 965819726..21d31d04e 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -1116,10 +1116,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