Browse Source

Identificar bancadas e comissões com autor externo

pull/2454/head
João Rodrigues 7 years ago
committed by João Rodrigues
parent
commit
25eaae7889
  1. 6
      sapl/base/urls.py
  2. 83
      sapl/base/views.py
  3. 34
      sapl/templates/base/bancada_comissao_autor_externo.html

6
sapl/base/urls.py

@ -32,7 +32,8 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
ListarProtocolosMateriasView,
ListarMatProtocoloInexistenteView,
ListarParlMandatosIntersecaoView,
ListarAutoresDuplicadosView)
ListarAutoresDuplicadosView,
ListarBancadaComissaoAutorExternoView)
app_name = AppConfig.name
@ -150,6 +151,9 @@ urlpatterns = [
url(r'^sistema/inconsistencias/autores_duplicados$',
ListarAutoresDuplicadosView.as_view(),
name='lista_autores_duplicados'),
url(r'^sistema/inconsistencias/bancada_comissao_autor_externo$',
ListarBancadaComissaoAutorExternoView.as_view(),
name='lista_bancada_comissao_autor_externo'),
# todos os sublinks de sistema devem vir acima deste
url(r'^sistema/$', permission_required('base.view_tabelas_auxiliares')

83
sapl/base/views.py

@ -38,7 +38,7 @@ 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)
SessaoPlenariaPresenca, Bancada)
from sapl.utils import (parlamentares_ativos,
show_results_filter_set, mail_service_configured,
intervalos_tem_intersecao)
@ -954,15 +954,90 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView):
('autores_duplicados',
'Autores duplicados',
len(autores_duplicados())
)
)
)
tabela.append(
('bancada_comissao_autor_externo',
'Bancadas e Comissões com autor externo',
len(bancada_comissao_autor_externo())
)
)
return tabela
def bancada_comissao_autor_externo():
lista_bancada_autor_externo = []
lista_comissao_autor_externo = []
tipo_autor_externo = TipoAutor.objects.filter(descricao='Externo')
for bancada in Bancada.objects.all():
autor_externo = bancada.autor.filter(tipo=tipo_autor_externo)
# if len(autor_externo) == 1:
if len(autor_externo) > 0:
q_autor_externo = bancada.autor.get(tipo=tipo_autor_externo)
lista_bancada_autor_externo.append(
(q_autor_externo, bancada, 'Bancada')
)
# elif len(autor_externo) > 1:
# q_autor_externo = bancada.autor.get(tipo=tipo_autor_externo)
# for autor in q_autor_externo:
# lista_bancada_autor_externo.append(
# (q_autor_externo, bancada, 'Bancada')
# )
for comissao in Comissao.objects.all():
autor_externo = comissao.autor.filter(tipo=tipo_autor_externo)
# if len(autor_externo) == 1:
if len(autor_externo) > 0:
q_autor_externo = comissao.autor.get(tipo=tipo_autor_externo)
lista_comissao_autor_externo.append(
(q_autor_externo, comissao, 'Comissão')
)
# elif len(autor_externo) > 1:
# q_autor_externo = comissao.autor.get(tipo=tipo_autor_externo)
# for autor in q_autor_externo:
# lista_comissao_autor_externo.append(
# (q_autor_externo, comissao, 'Comissão')
# )
return lista_bancada_autor_externo + lista_comissao_autor_externo
class ListarBancadaComissaoAutorExternoView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'base/bancada_comissao_autor_externo.html'
context_object_name = 'bancada_comissao_autor_externo'
permission_required = ('base.list_appconfig',)
paginate_by = 10
def get_queryset(self):
return bancada_comissao_autor_externo()
def get_context_data(self, **kwargs):
context = super(
ListarBancadaComissaoAutorExternoView, 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 encontrado.'
return context
def autores_duplicados():
autores = {}
for a in Autor.objects.all():
for a in Autor.objects.all().order_by('nome'):
key = "{}".format(a.nome)
val = autores.get(key, list())
val.append(a)
@ -997,7 +1072,7 @@ class ListarAutoresDuplicadosView(PermissionRequiredMixin, ListView):
def parlamentares_mandatos_intersecao():
intersecoes = []
for parlamentar in Parlamentar.objects.all():
for parlamentar in Parlamentar.objects.all().order_by('nome_completo'):
mandatos = parlamentar.mandato_set.all()
length = len(mandatos)
if mandatos and length > 1:

34
sapl/templates/base/bancada_comissao_autor_externo.html

@ -0,0 +1,34 @@
{% extends "base.html" %}
{% load i18n %}
{% load tz %}
{% load common_tags %}
{% block base_content %}
<fieldset>
<h1>Lista de Bancadas e Comissões com Autor Externo</h1>
{% if not bancada_comissao_autor_externo %}
<p>{{ NO_ENTRIES_MSG }}</p>
{% else %}
<table class="table table-striped table-hover">
<thead>
<tr>
<th>Autor</th>
<th>Descrição Objeto</th>
<th>Objeto</th>
</tr>
</thead>
<tbody>
{% for autor, objeto, descricao_objeto in bancada_comissao_autor_externo %}
<tr>
<td>
<a>{{ autor.nome }}</a>
</td>
<td>{{ descricao_objeto }}</td>
<td>{{ objeto }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
</fieldset>
{% include 'paginacao.html'%}
{% endblock base_content %}
Loading…
Cancel
Save