diff --git a/sapl/base/views.py b/sapl/base/views.py index 45d287279..4f60bb696 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -1286,14 +1286,55 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView): permission_required = ('base.list_appconfig',) def get_queryset(self): - tabela = {} - tabela['Protocolos Duplicados'] = len(protocolo_duplicados()) + tabela = [] + tabela.append( + ('protocolos_duplicados', + 'Protocolos duplicados', + len(protocolos_duplicados())) + ) + tabela.append( + ('protocolos_com_materias', + 'Protocolos que excedem o limite de matérias vinculadas', + len(protocolos_com_materias())) + ) + + return tabela + + +def protocolos_com_materias(): + protocolos = [] + for protocolo in Protocolo.objects.all(): + materias_protocolo = MateriaLegislativa.objects.filter( + ano=protocolo.ano, numero_protocolo=protocolo.numero) + if len(materias_protocolo) > 1: + protocolos.append((protocolo, len(materias_protocolo))) + return protocolos + + +class ListarProtocolosComMateriasView(PermissionRequiredMixin, ListView): + model = get_user_model() + template_name = 'base/protocolos_com_materias.html' + context_object_name = 'protocolos_com_materias' + permission_required = ('base.list_appconfig',) + paginate_by = 10 - t = tabela.items() - return t + def get_queryset(self): + return protocolos_com_materias() + 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 protocolo_duplicados(): + +def protocolos_duplicados(): protocolos = {} for p in Protocolo.objects.all(): key = "{}/{}".format(p.numero, p.ano) @@ -1313,7 +1354,7 @@ class ListarProtocolosDuplicadosView(PermissionRequiredMixin, ListView): paginate_by = 10 def get_queryset(self): - return protocolo_duplicados() + return protocolos_duplicados() def get_context_data(self, **kwargs): context = super( diff --git a/sapl/templates/base/protocolos_com_materias.html b/sapl/templates/base/protocolos_com_materias.html new file mode 100644 index 000000000..982993c08 --- /dev/null +++ b/sapl/templates/base/protocolos_com_materias.html @@ -0,0 +1,32 @@ +{% extends "base.html" %} +{% load i18n %} +{% load tz %} +{% load common_tags %} +{% block base_content %} +
+

Lista de Protocolos que Excedem o Limite de Matérias Vinculadas

+ {% if not protocolos_com_materias %} +

{{ NO_ENTRIES_MSG }}

+ {% else %} + + + + + + + + + {% for protocolo, quantidade in protocolos_com_materias %} + + + + + {% endfor %} + +
ProtocoloQuantidade de Matérias Vinculas
+ {{ protocolo }} + {{ quantidade }}
+ {% endif %} +
+ {% include 'paginacao.html'%} +{% endblock base_content %} \ No newline at end of file