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, RelatorioNormasVigenciaView,
EstatisticasAcessoNormas, EstatisticasAcessoNormas,
RelatoriosListView, RelatoriosListView,
ListarInconsistenciasView, ListarProtocolosDuplicadosView) ListarInconsistenciasView, ListarProtocolosDuplicadosView,
ListarProtocolosMateriasView,
ListarMatProtocoloInexistenteView,
ListarParlMandatosIntersecaoView)
app_name = AppConfig.name app_name = AppConfig.name
@ -134,12 +137,15 @@ urlpatterns = [
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$', url(r'^sistema/inconsistencias/protocolos_materias$',
ListarProtocolosComMateriasView.as_view(), ListarProtocolosMateriasView.as_view(),
name='lista_protocolos_com_materias'), name='lista_protocolos_materias'),
url(r'^sistema/inconsistencias/materias_com_protocolo_inexistente$', url(r'^sistema/inconsistencias/materias_protocolo_inexistente$',
ListarMateriasCProtocoloInexistenteV.as_view(), ListarMatProtocoloInexistenteView.as_view(),
name='lista_materias_com_protocolo_inexistente'), 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 # 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')

82
sapl/base/views.py

@ -35,11 +35,13 @@ 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.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import Protocolo 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,
show_results_filter_set, mail_service_configured) show_results_filter_set, mail_service_configured,
intervalos_tem_intersecao)
from .forms import (AlterarSenhaForm, CasaLegislativaForm, from .forms import (AlterarSenhaForm, CasaLegislativaForm,
ConfiguracoesAppForm, RelatorioAtasFilterSet, ConfiguracoesAppForm, RelatorioAtasFilterSet,
@ -930,21 +932,64 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView):
len(protocolos_duplicados())) len(protocolos_duplicados()))
) )
tabela.append( tabela.append(
('protocolos_com_materias', ('protocolos_materias',
'Protocolos que excedem o limite de matérias vinculadas', 'Protocolos que excedem o limite de matérias vinculadas',
len(protocolos_com_materias())) len(protocolos_materias()))
) )
tabela.append( tabela.append(
('materias_com_protocolo_inexistente', ('materias_protocolo_inexistente',
'Matérias Legislativas com 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 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 = [] materias = []
for materia in MateriaLegislativa.objects.all().order_by('-ano'): for materia in MateriaLegislativa.objects.all().order_by('-ano'):
if materia.numero_protocolo: if materia.numero_protocolo:
@ -956,19 +1001,20 @@ def materias_com_protocolo_inexistente():
return materias return materias
class ListarMateriasCProtocoloInexistenteV(PermissionRequiredMixin, ListView): class ListarMatProtocoloInexistenteView(PermissionRequiredMixin, ListView):
model = get_user_model() model = get_user_model()
template_name = 'base/materias_com_protocolo_inexistente.html' template_name = 'base/materias_protocolo_inexistente.html'
context_object_name = 'materias_com_protocolo_inexistente' context_object_name = 'materias_protocolo_inexistente'
permission_required = ('base.list_appconfig',) permission_required = ('base.list_appconfig',)
paginate_by = 10 paginate_by = 10
def get_queryset(self): def get_queryset(self):
return materias_com_protocolo_inexistente() return materias_protocolo_inexistente()
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super( context = super(
ListarProtocolosComMateriasView, self).get_context_data(**kwargs) ListarMatProtocoloInexistenteView, self
).get_context_data(**kwargs)
paginator = context['paginator'] paginator = context['paginator']
page_obj = context['page_obj'] page_obj = context['page_obj']
context['page_range'] = make_pagination( context['page_range'] = make_pagination(
@ -979,7 +1025,7 @@ class ListarMateriasCProtocoloInexistenteV(PermissionRequiredMixin, ListView):
return context return context
def protocolos_com_materias(): def protocolos_materias():
protocolos = [] protocolos = []
for protocolo in Protocolo.objects.all(): for protocolo in Protocolo.objects.all():
materias_protocolo = MateriaLegislativa.objects.filter( materias_protocolo = MateriaLegislativa.objects.filter(
@ -989,19 +1035,19 @@ def protocolos_com_materias():
return protocolos return protocolos
class ListarProtocolosComMateriasView(PermissionRequiredMixin, ListView): class ListarProtocolosMateriasView(PermissionRequiredMixin, ListView):
model = get_user_model() model = get_user_model()
template_name = 'base/protocolos_com_materias.html' template_name = 'base/protocolos_materias.html'
context_object_name = 'protocolos_com_materias' context_object_name = 'protocolos_materias'
permission_required = ('base.list_appconfig',) permission_required = ('base.list_appconfig',)
paginate_by = 10 paginate_by = 10
def get_queryset(self): def get_queryset(self):
return protocolos_com_materias() return protocolos_materias()
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super( context = super(
ListarProtocolosComMateriasView, self).get_context_data(**kwargs) ListarProtocolosMateriasView, self).get_context_data(**kwargs)
paginator = context['paginator'] paginator = context['paginator']
page_obj = context['page_obj'] page_obj = context['page_obj']
context['page_range'] = make_pagination( 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 %} {% block base_content %}
<fieldset> <fieldset>
<h1>Lista de Matérias Legislativas com Protocolo Inexistente</h1> <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> <p>{{ NO_ENTRIES_MSG }}</p>
{% else %} {% else %}
<table class="table table-striped table-hover"> <table class="table table-striped table-hover">
@ -17,7 +17,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for materia, ano, numero_protocolo in materias_com_protocolo_inexistente %} {% for materia, ano, numero_protocolo in materias_protocolo_inexistente %}
<tr> <tr>
<td> <td>
<a href="{% url 'sapl.materia:pesquisar_materia' %}">{{ materia }}</a> <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 %} {% block base_content %}
<fieldset> <fieldset>
<h1>Lista de Protocolos que Excedem o Limite de Matérias Vinculadas</h1> <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> <p>{{ NO_ENTRIES_MSG }}</p>
{% else %} {% else %}
<table class="table table-striped table-hover"> <table class="table table-striped table-hover">
@ -16,7 +16,7 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for protocolo, quantidade in protocolos_com_materias %} {% for protocolo, quantidade in protocolos_materias %}
<tr> <tr>
<td> <td>
<a href="{% url 'sapl.materia:pesquisar_materia' %}?numero_protocolo={{protocolo.numero}}">{{ protocolo }}</a> <a href="{% url 'sapl.materia:pesquisar_materia' %}?numero_protocolo={{protocolo.numero}}">{{ protocolo }}</a>
Loading…
Cancel
Save