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/2916/head
João Rodrigues 5 years ago
committed by Edward
parent
commit
ab49531171
  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, from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column,
to_row) to_row)
from sapl.crispy_layout_mixin import SaplFormHelper from sapl.crispy_layout_mixin import SaplFormHelper
from sapl.materia.models import ( from sapl.materia.models import (MateriaLegislativa, UnidadeTramitacao, StatusTramitacao,
MateriaLegislativa, UnidadeTramitacao, StatusTramitacao) DocumentoAcessorio, TipoMateriaLegislativa)
from sapl.norma.models import (NormaJuridica, NormaEstatisticas) from sapl.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.parlamentares.models import SessaoLegislativa, Partido from sapl.parlamentares.models import SessaoLegislativa, Partido
from sapl.protocoloadm.models import DocumentoAdministrativo from sapl.protocoloadm.models import DocumentoAdministrativo
@ -731,6 +731,43 @@ class AutorFormForAdmin(AutorForm):
'status_user'] '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 RelatorioAtasFilterSet(django_filters.FilterSet):
class Meta(FilterOverridesMetaMixin): class Meta(FilterOverridesMetaMixin):

5
sapl/base/urls.py

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

49
sapl/base/views.py

@ -36,7 +36,8 @@ from sapl.base.models import Autor, TipoAutor
from sapl.comissoes.models import Reuniao, Comissao from sapl.comissoes.models import Reuniao, Comissao
from sapl.crud.base import CrudAux, make_pagination from sapl.crud.base import CrudAux, make_pagination
from sapl.materia.models import (Autoria, MateriaLegislativa, Proposicao, Anexada, 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.norma.models import (NormaJuridica, NormaEstatisticas)
from sapl.parlamentares.models import Parlamentar, Legislatura, Mandato, Filiacao, SessaoLegislativa from sapl.parlamentares.models import Parlamentar, Legislatura, Mandato, Filiacao, SessaoLegislativa
from sapl.protocoloadm.models import (Protocolo, TipoDocumentoAdministrativo, from sapl.protocoloadm.models import (Protocolo, TipoDocumentoAdministrativo,
@ -60,7 +61,8 @@ from .forms import (AlterarSenhaForm, CasaLegislativaForm,
UsuarioEditForm, RelatorioNormasMesFilterSet, UsuarioEditForm, RelatorioNormasMesFilterSet,
RelatorioNormasVigenciaFilterSet, RelatorioNormasVigenciaFilterSet,
EstatisticasAcessoNormasForm, UsuarioFilterSet, EstatisticasAcessoNormasForm, UsuarioFilterSet,
RelatorioHistoricoTramitacaoAdmFilterSet) RelatorioHistoricoTramitacaoAdmFilterSet,
RelatorioDocumentosAcessoriosFilterSet)
from .models import AppConfig, CasaLegislativa from .models import AppConfig, CasaLegislativa
@ -302,6 +304,49 @@ class RelatoriosListView(TemplateView):
return context 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): class RelatorioAtasView(FilterView):
model = SessaoPlenaria model = SessaoPlenaria
filterset_class = RelatorioAtasFilterSet 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> <td> Normas por acesso. </td>
</tr> </tr>
{% endif %} {% 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> </tbody>
</table> </table>
</fieldset> </fieldset>

Loading…
Cancel
Save