Browse Source

Adicionar identificação de protocolos duplicados

pull/2454/head
João Rodrigues 7 years ago
committed by João Rodrigues
parent
commit
cb311f731e
  1. 10
      sapl/base/urls.py
  2. 50
      sapl/base/views.py
  3. 22
      sapl/templates/base/lista_inconsistencias.html
  4. 32
      sapl/templates/base/protocolos_duplicados.html
  5. 3
      sapl/templates/navbar.yaml

10
sapl/base/urls.py

@ -27,7 +27,8 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
RelatorioNormasPublicadasMesView,
RelatorioNormasVigenciaView,
EstatisticasAcessoNormas,
RelatoriosListView)
RelatoriosListView,
ListarInconsistenciasView, ListarProtocolosDuplicadosView)
app_name = AppConfig.name
@ -127,6 +128,13 @@ urlpatterns = [
'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})$',
ConfirmarEmailView.as_view(), name='confirmar_email'),
url(r'^sistema/inconsistencias/$',
ListarInconsistenciasView.as_view(),
name='lista_inconsistencias'),
url(r'^sistema/inconsistencias/protocolos_duplicados$',
ListarProtocolosDuplicadosView.as_view(),
name='lista_protocolos_duplicados'),
# todos os sublinks de sistema devem vir acima deste
url(r'^sistema/$', permission_required('base.view_tabelas_auxiliares')

50
sapl/base/views.py

@ -35,6 +35,7 @@ from sapl.crud.base import CrudAux, make_pagination
from sapl.materia.models import (Autoria, MateriaLegislativa,
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.protocoloadm.models import Protocolo
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca)
from sapl.utils import (parlamentares_ativos,
@ -915,6 +916,55 @@ class EstatisticasAcessoNormas(TemplateView):
return self.render_to_response(context)
class ListarInconsistenciasView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/lista_inconsistencias.html'
context_object_name = 'tabela_inconsistencias'
permission_required = ('base.list_appconfig',)
def get_queryset(self):
tabela = {}
tabela['Protocolos Duplicados'] = len(protocolo_duplicados())
t = tabela.items()
return t
def protocolo_duplicados():
protocolos = {}
for p in Protocolo.objects.all():
key = "{}/{}".format(p.numero, p.ano)
val = protocolos.get(key, list())
val.append(p)
protocolos[key] = val
lista_duplicados = [v for (k, v) in protocolos.items() if len(v) > 1]
return [(v[0], len(v)) for v in lista_duplicados]
class ListarProtocolosDuplicadosView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/protocolos_duplicados.html'
context_object_name = 'protocolos_duplicados'
permission_required = ('base.list_appconfig',)
paginate_by = 10
def get_queryset(self):
return protocolo_duplicados()
def get_context_data(self, **kwargs):
context = super(
ListarProtocolosDuplicadosView, 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 protocolo duplicado cadastrado no sistema.'
return context
class ListarUsuarioView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'auth/user_list.html'

22
sapl/templates/base/lista_inconsistencias.html

@ -0,0 +1,22 @@
{% extends "base.html" %}
{% load i18n %}
{% load tz %}
{% load common_tags %}
{% block base_content %}
<fieldset>
<h1>Lista de Inconsistências</h1>
<table class="table table-striped table-hover">
<tbody>
{% for campo, valor in tabela_inconsistencias %}
<tr>
<td>
<a href="{% url 'sapl.base:lista_protocolos_duplicados' %}">{{ campo }}</a>
</td>
<td>{{ valor }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</fieldset>
{% include 'paginacao.html'%}
{% endblock base_content %}

32
sapl/templates/base/protocolos_duplicados.html

@ -0,0 +1,32 @@
{% extends "base.html" %}
{% load i18n %}
{% load tz %}
{% load common_tags %}
{% block base_content %}
<fieldset>
<h1>Lista de Protocolos Duplicados</h1>
{% if not protocolos_duplicados %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Protocolo</th>
<th>Quantidade</th>
</tr>
</thead>
<tbody>
{% for protocolo, quantidade in protocolos_duplicados %}
<tr>
<td>
<a href="{% url 'sapl.protocoloadm:protocolo' %}?numero={{protocolo.numero}}&ano={{protocolo.ano}}">{{ protocolo }}</a>
</td>
<td>{{ quantidade }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</fieldset>
{% include 'paginacao.html'%}
{% endblock base_content %}

3
sapl/templates/navbar.yaml

@ -75,6 +75,9 @@
- title: {% trans 'Administração de Usuários' %}
url: {% url 'sapl.base:user_list' %}
check_permission: user.is_superuser
- title: {% trans 'Inconsistências da Aplicação' %}
url: {% url 'sapl.base:lista_inconsistencias' %}
check_permission: user.is_superuser
{% comment %}
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Provedor LexML</a></li>

Loading…
Cancel
Save