Browse Source

Identificar protocolos com duas ou mais matérias

pull/2454/head
João Rodrigues 7 years ago
committed by João Rodrigues
parent
commit
a3ac9e7047
  1. 4
      sapl/base/urls.py
  2. 53
      sapl/base/views.py
  3. 4
      sapl/templates/base/lista_inconsistencias.html
  4. 32
      sapl/templates/base/protocolos_com_materias.html

4
sapl/base/urls.py

@ -131,10 +131,12 @@ urlpatterns = [
url(r'^sistema/inconsistencias/$', url(r'^sistema/inconsistencias/$',
ListarInconsistenciasView.as_view(), ListarInconsistenciasView.as_view(),
name='lista_inconsistencias'), name='lista_inconsistencias'),
url(r'^sistema/inconsistencias/protocolos_duplicados$', url(r'^sistema/inconsistencias/protocolos_duplicados$',
ListarProtocolosDuplicadosView.as_view(), ListarProtocolosDuplicadosView.as_view(),
name='lista_protocolos_duplicados'), name='lista_protocolos_duplicados'),
url(r'^sistema/inconsistencias/protocolos_com_materias$',
ListarProtocolosComMateriasView.as_view(),
name='lista_protocolos_com_materias'),
# 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')

53
sapl/base/views.py

@ -923,14 +923,55 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView):
permission_required = ('base.list_appconfig',) permission_required = ('base.list_appconfig',)
def get_queryset(self): def get_queryset(self):
tabela = {} tabela = []
tabela['Protocolos Duplicados'] = len(protocolo_duplicados()) 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() def get_queryset(self):
return t 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 = {} protocolos = {}
for p in Protocolo.objects.all(): for p in Protocolo.objects.all():
key = "{}/{}".format(p.numero, p.ano) key = "{}/{}".format(p.numero, p.ano)
@ -950,7 +991,7 @@ class ListarProtocolosDuplicadosView(PermissionRequiredMixin, ListView):
paginate_by = 10 paginate_by = 10
def get_queryset(self): def get_queryset(self):
return protocolo_duplicados() return protocolos_duplicados()
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super( context = super(

4
sapl/templates/base/lista_inconsistencias.html

@ -7,10 +7,10 @@
<h1>Lista de Inconsistências</h1> <h1>Lista de Inconsistências</h1>
<table class="table table-striped table-hover"> <table class="table table-striped table-hover">
<tbody> <tbody>
{% for campo, valor in tabela_inconsistencias %} {% for complemento_link, nome, valor in tabela_inconsistencias %}
<tr> <tr>
<td> <td>
<a href="{% url 'sapl.base:lista_protocolos_duplicados' %}">{{ campo }}</a> <a href="{% url 'sapl.base:lista_inconsistencias' %}{{ complemento_link }}">{{ nome }}</a>
</td> </td>
<td>{{ valor }}</td> <td>{{ valor }}</td>
</tr> </tr>

32
sapl/templates/base/protocolos_com_materias.html

@ -0,0 +1,32 @@
{% extends "base.html" %}
{% load i18n %}
{% load tz %}
{% load common_tags %}
{% block base_content %}
<fieldset>
<h1>Lista de Protocolos que Excedem o Limite de Matérias Vinculadas</h1>
{% if not protocolos_com_materias %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Protocolo</th>
<th>Quantidade de Matérias Vinculas</th>
</tr>
</thead>
<tbody>
{% for protocolo, quantidade in protocolos_com_materias %}
<tr>
<td>
<a href="{% url 'sapl.materia:pesquisar_materia' %}?numero_protocolo={{protocolo.numero}}">{{ protocolo }}</a>
</td>
<td>{{ quantidade }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</fieldset>
{% include 'paginacao.html'%}
{% endblock base_content %}
Loading…
Cancel
Save