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. 12
      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

12
sapl/base/urls.py

@ -16,7 +16,7 @@ from .forms import LoginForm, NovaSenhaForm, RecuperarSenhaForm
from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud, from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
CreateUsuarioView, DeleteUsuarioView, EditUsuarioView, CreateUsuarioView, DeleteUsuarioView, EditUsuarioView,
HelpTopicView, ListarUsuarioView, LogotipoView, HelpTopicView, ListarUsuarioView, LogotipoView,
RelatorioAtasView, RelatorioAudienciaView, RelatorioAtasView, RelatorioAudienciaView,
RelatorioDataFimPrazoTramitacaoView, RelatorioDataFimPrazoTramitacaoView,
RelatorioHistoricoTramitacaoView, RelatorioHistoricoTramitacaoView,
RelatorioMateriasPorAnoAutorTipoView, RelatorioMateriasPorAnoAutorTipoView,
@ -27,7 +27,8 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
RelatorioNormasPublicadasMesView, RelatorioNormasPublicadasMesView,
RelatorioNormasVigenciaView, RelatorioNormasVigenciaView,
EstatisticasAcessoNormas, EstatisticasAcessoNormas,
RelatoriosListView) RelatoriosListView,
ListarInconsistenciasView, ListarProtocolosDuplicadosView)
app_name = AppConfig.name app_name = AppConfig.name
@ -127,6 +128,13 @@ urlpatterns = [
'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})$', '(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})$',
ConfirmarEmailView.as_view(), name='confirmar_email'), 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 # todos os sublinks de sistema devem vir acima deste
url(r'^sistema/$', permission_required('base.view_tabelas_auxiliares') 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, from sapl.materia.models import (Autoria, MateriaLegislativa,
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao) TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas) from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.protocoloadm.models import Protocolo
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria, from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca) SessaoPlenariaPresenca)
from sapl.utils import (parlamentares_ativos, from sapl.utils import (parlamentares_ativos,
@ -915,6 +916,55 @@ class EstatisticasAcessoNormas(TemplateView):
return self.render_to_response(context) 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): class ListarUsuarioView(PermissionRequiredMixin, ListView):
model = get_user_model() model = get_user_model()
template_name = 'auth/user_list.html' 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' %} - title: {% trans 'Administração de Usuários' %}
url: {% url 'sapl.base:user_list' %} url: {% url 'sapl.base:user_list' %}
check_permission: user.is_superuser check_permission: user.is_superuser
- title: {% trans 'Inconsistências da Aplicação' %}
url: {% url 'sapl.base:lista_inconsistencias' %}
check_permission: user.is_superuser
{% comment %} {% comment %}
<li class="nav__sub-item"><a class="nav__sub-link" href="#">Provedor LexML</a></li> <li class="nav__sub-item"><a class="nav__sub-link" href="#">Provedor LexML</a></li>

Loading…
Cancel
Save