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. 81
      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, ListarProtocolosMateriasView,
ListarMatProtocoloInexistenteView, ListarMatProtocoloInexistenteView,
ListarParlMandatosIntersecaoView, ListarParlMandatosIntersecaoView,
ListarAutoresDuplicadosView) ListarAutoresDuplicadosView,
ListarBancadaComissaoAutorExternoView)
app_name = AppConfig.name app_name = AppConfig.name
@ -150,6 +151,9 @@ urlpatterns = [
url(r'^sistema/inconsistencias/autores_duplicados$', url(r'^sistema/inconsistencias/autores_duplicados$',
ListarAutoresDuplicadosView.as_view(), ListarAutoresDuplicadosView.as_view(),
name='lista_autores_duplicados'), 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 # 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')

81
sapl/base/views.py

@ -38,7 +38,7 @@ from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.parlamentares.models import Parlamentar 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, Bancada)
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) intervalos_tem_intersecao)
@ -956,13 +956,88 @@ class ListarInconsistenciasView(PermissionRequiredMixin, ListView):
len(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 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(): def autores_duplicados():
autores = {} autores = {}
for a in Autor.objects.all(): for a in Autor.objects.all().order_by('nome'):
key = "{}".format(a.nome) key = "{}".format(a.nome)
val = autores.get(key, list()) val = autores.get(key, list())
val.append(a) val.append(a)
@ -997,7 +1072,7 @@ class ListarAutoresDuplicadosView(PermissionRequiredMixin, ListView):
def parlamentares_mandatos_intersecao(): def parlamentares_mandatos_intersecao():
intersecoes = [] intersecoes = []
for parlamentar in Parlamentar.objects.all(): for parlamentar in Parlamentar.objects.all().order_by('nome_completo'):
mandatos = parlamentar.mandato_set.all() mandatos = parlamentar.mandato_set.all()
length = len(mandatos) length = len(mandatos)
if mandatos and length > 1: 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