Browse Source

sobe alteracoes

pull/2454/head
Cesar Carvalho 7 years ago
committed by João Rodrigues
parent
commit
a672d12976
  1. 20
      sapl/base/urls.py
  2. 82
      sapl/base/views.py
  3. 4
      sapl/templates/base/materias_protocolo_inexistente.html
  4. 34
      sapl/templates/base/parlamentares_mandatos_interseccao.html
  5. 4
      sapl/templates/base/protocolos_materias.html

20
sapl/base/urls.py

@ -28,7 +28,10 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
RelatorioNormasVigenciaView,
EstatisticasAcessoNormas,
RelatoriosListView,
ListarInconsistenciasView, ListarProtocolosDuplicadosView)
ListarInconsistenciasView, ListarProtocolosDuplicadosView,
ListarProtocolosMateriasView,
ListarMatProtocoloInexistenteView,
ListarParlMandatosIntersecaoView)
app_name = AppConfig.name
@ -134,12 +137,15 @@ urlpatterns = [
url(r'^sistema/inconsistencias/protocolos_duplicados$',
ListarProtocolosDuplicadosView.as_view(),
name='lista_protocolos_duplicados'),
url(r'^sistema/inconsistencias/protocolos_com_materias$',
ListarProtocolosComMateriasView.as_view(),
name='lista_protocolos_com_materias'),
url(r'^sistema/inconsistencias/materias_com_protocolo_inexistente$',
ListarMateriasCProtocoloInexistenteV.as_view(),
name='lista_materias_com_protocolo_inexistente'),
url(r'^sistema/inconsistencias/protocolos_materias$',
ListarProtocolosMateriasView.as_view(),
name='lista_protocolos_materias'),
url(r'^sistema/inconsistencias/materias_protocolo_inexistente$',
ListarMatProtocoloInexistenteView.as_view(),
name='lista_materias_protocolo_inexistente'),
url(r'^sistema/inconsistencias/parlamentares_mandatos_intersecao$',
ListarParlMandatosIntersecaoView.as_view(),
name='lista_parlamentares_mandatos_intersecao'),
# todos os sublinks de sistema devem vir acima deste
url(r'^sistema/$', permission_required('base.view_tabelas_auxiliares')

82
sapl/base/views.py

@ -35,11 +35,13 @@ 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.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import Protocolo
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca)
from sapl.utils import (parlamentares_ativos,
show_results_filter_set, mail_service_configured)
show_results_filter_set, mail_service_configured,
intervalos_tem_intersecao)
from .forms import (AlterarSenhaForm, CasaLegislativaForm,
ConfiguracoesAppForm, RelatorioAtasFilterSet,
@ -930,21 +932,64 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView):
len(protocolos_duplicados()))
)
tabela.append(
('protocolos_com_materias',
('protocolos_materias',
'Protocolos que excedem o limite de matérias vinculadas',
len(protocolos_com_materias()))
len(protocolos_materias()))
)
tabela.append(
('materias_com_protocolo_inexistente',
('materias_protocolo_inexistente',
'Matérias Legislativas com protocolo inexistente',
len(materias_com_protocolo_inexistente())
len(materias_protocolo_inexistente()))
)
tabela.append(
('parlamentares_mandato_intersecao',
'Parlamentares com mandatos com interseção',
len(parlamentares_mandatos_intersecao()))
)
)
return tabela
def materias_com_protocolo_inexistente():
def parlamentares_mandatos_intersecao():
intersecoes = []
for parlamentar in Parlamentar.objects.all():
mandatos = parlamentar.mandato_set.all()
length = len(mandatos)
if mandatos and length > 1:
for i in range(0, length-1):
for j in range(i+1, length):
mandato1 = mandatos[i]
mandato2 = mandatos[j]
exists = intervalos_tem_intersecao(mandato1.data_inicio_mandato, mandato1.data_fim_mandato, mandato2.data_inicio_mandato, mandato2.data_fim_mandato)
if exists:
intersecoes.append((parlamentar, mandato1, mandato2))
return intersecoes
class ListarParlMandatosIntersecaoView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/parlamentares_mandato_intersecao.html'
context_object_name = 'parlamentares_mandatos_intersecao'
permission_required = ('base.list_appconfig',)
paginate_by = 10
def get_queryset(self):
return parlamentares_mandato_intersecao()
def get_context_data(self, **kwargs):
context = super(
ListarParlMandatosIntersecaoView, 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 materias_protocolo_inexistente():
materias = []
for materia in MateriaLegislativa.objects.all().order_by('-ano'):
if materia.numero_protocolo:
@ -956,19 +1001,20 @@ def materias_com_protocolo_inexistente():
return materias
class ListarMateriasCProtocoloInexistenteV(PermissionRequiredMixin, ListView):
class ListarMatProtocoloInexistenteView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/materias_com_protocolo_inexistente.html'
context_object_name = 'materias_com_protocolo_inexistente'
template_name = 'base/materias_protocolo_inexistente.html'
context_object_name = 'materias_protocolo_inexistente'
permission_required = ('base.list_appconfig',)
paginate_by = 10
def get_queryset(self):
return materias_com_protocolo_inexistente()
return materias_protocolo_inexistente()
def get_context_data(self, **kwargs):
context = super(
ListarProtocolosComMateriasView, self).get_context_data(**kwargs)
ListarMatProtocoloInexistenteView, self
).get_context_data(**kwargs)
paginator = context['paginator']
page_obj = context['page_obj']
context['page_range'] = make_pagination(
@ -979,7 +1025,7 @@ class ListarMateriasCProtocoloInexistenteV(PermissionRequiredMixin, ListView):
return context
def protocolos_com_materias():
def protocolos_materias():
protocolos = []
for protocolo in Protocolo.objects.all():
materias_protocolo = MateriaLegislativa.objects.filter(
@ -989,19 +1035,19 @@ def protocolos_com_materias():
return protocolos
class ListarProtocolosComMateriasView(PermissionRequiredMixin, ListView):
class ListarProtocolosMateriasView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/protocolos_com_materias.html'
context_object_name = 'protocolos_com_materias'
template_name = 'base/protocolos_materias.html'
context_object_name = 'protocolos_materias'
permission_required = ('base.list_appconfig',)
paginate_by = 10
def get_queryset(self):
return protocolos_com_materias()
return protocolos_materias()
def get_context_data(self, **kwargs):
context = super(
ListarProtocolosComMateriasView, self).get_context_data(**kwargs)
ListarProtocolosMateriasView, self).get_context_data(**kwargs)
paginator = context['paginator']
page_obj = context['page_obj']
context['page_range'] = make_pagination(

4
sapl/templates/base/materias_com_protocolo_inexistente.html → sapl/templates/base/materias_protocolo_inexistente.html

@ -5,7 +5,7 @@
{% block base_content %}
<fieldset>
<h1>Lista de Matérias Legislativas com Protocolo Inexistente</h1>
{% if not materias_com_protocolo_inexistente %}
{% if not materias_protocolo_inexistente %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover">
@ -17,7 +17,7 @@
</tr>
</thead>
<tbody>
{% for materia, ano, numero_protocolo in materias_com_protocolo_inexistente %}
{% for materia, ano, numero_protocolo in materias_protocolo_inexistente %}
<tr>
<td>
<a href="{% url 'sapl.materia:pesquisar_materia' %}">{{ materia }}</a>

34
sapl/templates/base/parlamentares_mandatos_interseccao.html

@ -0,0 +1,34 @@
{% extends "base.html" %}
{% load i18n %}
{% load tz %}
{% load common_tags %}
{% block base_content %}
<fieldset>
<h1>Lista de Parlamentares com Mandatos com Interseção</h1>
{% if not parlamentares_mandatos_intersecao %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Matéria Legislativa</th>
<th>Ano</th>
<th>Número Protocolo</th>
</tr>
</thead>
<tbody>
{% for materia, ano, numero_protocolo in parlamentares_mandatos_intersecao %}
<tr>
<td>
<a href="{% url 'sapl.materia:pesquisar_materia' %}">{{ materia }}</a>
</td>
<td>{{ ano }}</td>
<td>{{ numero_protocolo }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</fieldset>
{% include 'paginacao.html'%}
{% endblock base_content %}

4
sapl/templates/base/protocolos_com_materias.html → sapl/templates/base/protocolos_materias.html

@ -5,7 +5,7 @@
{% block base_content %}
<fieldset>
<h1>Lista de Protocolos que Excedem o Limite de Matérias Vinculadas</h1>
{% if not protocolos_com_materias %}
{% if not protocolos_materias %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover">
@ -16,7 +16,7 @@
</tr>
</thead>
<tbody>
{% for protocolo, quantidade in protocolos_com_materias %}
{% for protocolo, quantidade in protocolos_materias %}
<tr>
<td>
<a href="{% url 'sapl.materia:pesquisar_materia' %}?numero_protocolo={{protocolo.numero}}">{{ protocolo }}</a>
Loading…
Cancel
Save