Browse Source

Relatorio de Documentos Acessórios de Matéria Legislativa (#2901)

* Adicionar novo título de relatório

* Adicionar pesquisa de doc acessórios de matérias

* Adicionar relatório de documentos acessórios
pull/2758/head
João Rodrigues 5 years ago
committed by Cesar Carvalho
parent
commit
598c845471
  1. 41
      sapl/base/forms.py
  2. 5
      sapl/base/urls.py
  3. 49
      sapl/base/views.py
  4. 43
      sapl/templates/base/RelatorioDocumentosAcessorios_filter.html
  5. 4
      sapl/templates/base/relatorios_list.html

41
sapl/base/forms.py

@ -26,8 +26,8 @@ from sapl.comissoes.models import Reuniao, Comissao
from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column,
to_row)
from sapl.crispy_layout_mixin import SaplFormHelper
from sapl.materia.models import (
MateriaLegislativa, UnidadeTramitacao, StatusTramitacao)
from sapl.materia.models import (MateriaLegislativa, UnidadeTramitacao, StatusTramitacao,
DocumentoAcessorio, TipoMateriaLegislativa)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.protocoloadm.models import DocumentoAdministrativo
from sapl.parlamentares.models import SessaoLegislativa, Partido, HistoricoPartido
@ -732,6 +732,43 @@ class AutorFormForAdmin(AutorForm):
'status_user']
class RelatorioDocumentosAcessoriosFilterSet(django_filters.FilterSet):
@property
def qs(self):
parent = super(RelatorioDocumentosAcessoriosFilterSet, self).qs
return parent.distinct().order_by('-data')
class Meta(FilterOverridesMetaMixin):
model = DocumentoAcessorio
fields = ['tipo', 'materia__tipo', 'data']
def __init__(self, *args, **kwargs):
super(
RelatorioDocumentosAcessoriosFilterSet, self
).__init__(*args, **kwargs)
self.filters['tipo'].label = 'Tipo de Documento'
self.filters['materia__tipo'].label = 'Tipo de Matéria do Documento'
self.filters['data'].label = 'Período (Data Inicial - Data Final)'
self.form.fields['tipo'].required = True
row0 = to_row([('tipo', 6),
('materia__tipo', 6)])
row1 = to_row([('data', 12)])
self.form.helper = SaplFormHelper()
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
Fieldset(_('Pesquisa'),
row0, row1,
form_actions(label='Pesquisar'))
)
class RelatorioAtasFilterSet(django_filters.FilterSet):
class Meta(FilterOverridesMetaMixin):

5
sapl/base/urls.py

@ -38,7 +38,7 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
ListarAutoresDuplicadosView, ListarBancadaComissaoAutorExternoView,
ListarLegislaturaInfindavelView, ListarAnexadasCiclicasView,
ListarAnexadosCiclicosView, pesquisa_textual,
RelatorioHistoricoTramitacaoAdmView)
RelatorioHistoricoTramitacaoAdmView, RelatorioDocumentosAcessoriosView)
app_name = AppConfig.name
@ -153,6 +153,9 @@ urlpatterns = [
url(r'^sistema/relatorios/historico-tramitacoesadm$',
RelatorioHistoricoTramitacaoAdmView.as_view(),
name='historico_tramitacoes_adm'),
url(r'^sistema/relatorios/documentos_acessorios$',
RelatorioDocumentosAcessoriosView.as_view(),
name='relatorio_documentos_acessorios'),
url(r'^email/validate/(?P<uidb64>[0-9A-Za-z_\-]+)/'
'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})$',

49
sapl/base/views.py

@ -39,7 +39,8 @@ from sapl.base.models import Autor, TipoAutor
from sapl.comissoes.models import Reuniao, Comissao
from sapl.crud.base import CrudAux, make_pagination
from sapl.materia.models import (Autoria, MateriaLegislativa, Proposicao, Anexada,
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao)
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao,
DocumentoAcessorio, TipoDocumento)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.parlamentares.models import (Parlamentar, Legislatura, Mandato,
Filiacao, SessaoLegislativa, Bancada)
@ -64,7 +65,8 @@ from .forms import (AlterarSenhaForm, CasaLegislativaForm,
UsuarioEditForm, RelatorioNormasMesFilterSet,
RelatorioNormasVigenciaFilterSet,
EstatisticasAcessoNormasForm, UsuarioFilterSet,
RelatorioHistoricoTramitacaoAdmFilterSet)
RelatorioHistoricoTramitacaoAdmFilterSet,
RelatorioDocumentosAcessoriosFilterSet)
from .models import AppConfig, CasaLegislativa
@ -325,6 +327,49 @@ class RelatoriosListView(TemplateView):
return context
class RelatorioDocumentosAcessoriosView(FilterView):
model = DocumentoAcessorio
filterset_class = RelatorioDocumentosAcessoriosFilterSet
template_name = 'base/RelatorioDocumentosAcessorios_filter.html'
def get_context_data(self, **kwargs):
context = super(
RelatorioDocumentosAcessoriosView, self
).get_context_data(**kwargs)
context['title'] = _('Documentos Acessórios das Matérias Legislativas')
if not self.filterset.form.is_valid():
return context
query_dict = self.request.GET.copy()
context['show_results'] = show_results_filter_set(query_dict)
context['tipo_documento'] = str(
TipoDocumento.objects.get(pk=self.request.GET['tipo'])
)
tipo_materia = self.request.GET['materia__tipo']
if tipo_materia:
context['tipo_materia'] = str(
TipoMateriaLegislativa.objects.get(pk=tipo_materia)
)
else:
context['tipo_materia'] = "Não selecionado"
data_inicial = self.request.GET['data_0']
data_final = self.request.GET['data_1']
if not data_inicial:
data_inicial = "Data Inicial não definida"
if not data_final:
data_final = "Data Final não definida"
context['periodo'] = (
data_inicial + ' - ' + data_final
)
return context
class RelatorioAtasView(FilterView):
model = SessaoPlenaria
filterset_class = RelatorioAtasFilterSet

43
sapl/templates/base/RelatorioDocumentosAcessorios_filter.html

@ -0,0 +1,43 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block base_content %}
{% if not show_results %}
{% crispy filter.form %}
{% else %}
<div class="actions btn-group float-right" role="group">
<a href="{% url 'sapl.base:relatorio_documentos_acessorios' %}" class="btn btn-outline-primary">{% trans 'Fazer uma nova pesquisa' %}</a>
</div>
<br /><br /><br /><br />
<b>PARÂMETROS DE PESQUISA<br /></b>
&emsp;Tipo de Documento: {{ tipo_documento }}<br />
&emsp;Tipo de Matéria do Documento: {{ tipo_materia }}<br />
&emsp;Período: {{ periodo }}<br /><br /><br />
{% if object_list %}
{% if object_list|length == 1 %}
<tr><td><h3 style="text-align: left;">Foi encontrado 1 documento com esses parâmetros.</h3></td></tr><br><br>
{% else %}
<tr><td><h3 style="text-align: left;">Foram encontrados {{ object_list|length }} documentos com esses parâmetros.</h3></td></tr><br><br>
{% endif %}
<table class="table table-bordered table-hover">
<thead class="thead-default">
<tr class="active">
<th>Documento Acessório</th>
<th>Matéria do Documento</th>
</tr>
</thead>
<tbody>
{% for documento in object_list %}
<tr>
<td><a href="{% url 'sapl.materia:documentoacessorio_detail' documento.pk %}">{{ documento }}</a></td>
<td>{{ documento.materia }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<tr><td><h3 style="text-align: left;">Nenhuma documento encontrado com esses parâmetros.</h3></td></tr><br><br>
{% endif %}
{% endif %}
{% endblock base_content %}

4
sapl/templates/base/relatorios_list.html

@ -66,6 +66,10 @@
<td> Normas por acesso. </td>
</tr>
{% endif %}
<tr>
<td><a href="{% url 'sapl.base:relatorio_documentos_acessorios' %}"> Documentos Acessórios de Matérias Legislativas</a></td>
<td> Documentos Acessórios por tipo, período e tipo da Matéria Legislativa associada.</td>
</tr>
</tbody>
</table>
</fieldset>

Loading…
Cancel
Save