Browse Source

Adiciona relatorio de audiencia

pull/2200/head
Mariana Mendes 7 years ago
parent
commit
8e2631b721
  1. 3
      sapl/audiencia/views.py
  2. 32
      sapl/base/forms.py
  3. 10
      sapl/base/urls.py
  4. 44
      sapl/base/views.py
  5. 34
      sapl/templates/base/RelatorioAudiencia_filter.html
  6. 38
      sapl/templates/base/RelatorioReuniao_filter.html
  7. 4
      sapl/templates/base/relatorios_list.html

3
sapl/audiencia/views.py

@ -6,6 +6,9 @@ from sapl.crud.base import RP_DETAIL, RP_LIST, Crud
from .forms import AudienciaForm
from .models import AudienciaPublica
def pegar_url_audiencia(pk):
url = reverse('sapl.audiencia:audiencia_detail', kwargs={'pk': self.object.id})
return url
def index(request):
return HttpResponse("Audiência Pública")

32
sapl/base/forms.py

@ -17,7 +17,8 @@ from django.utils.translation import string_concat
from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column,
to_row)
from sapl.comissoes.models import Reuniao
from sapl.audiencia.models import AudienciaPublica,TipoAudienciaPublica
from sapl.comissoes.models import Reuniao, Comissao
from sapl.materia.models import (MateriaLegislativa, UnidadeTramitacao, StatusTramitacao)
from sapl.parlamentares.models import SessaoLegislativa
from sapl.sessao.models import SessaoPlenaria
@ -696,6 +697,35 @@ class RelatorioReuniaoFilterSet(django_filters.FilterSet):
form_actions(label='Pesquisar'))
)
class RelatorioAudienciaFilterSet(django_filters.FilterSet):
@property
def qs(self):
parent = super(RelatorioAudienciaFilterSet, self).qs
return parent.distinct().order_by('-data', 'tipo')
class Meta:
model = AudienciaPublica
fields = ['tipo', 'data',
'nome']
def __init__(self, *args, **kwargs):
super(RelatorioAudienciaFilterSet, self).__init__(
*args, **kwargs)
row1 = to_row([('data', 12)])
row2 = to_row(
[('tipo', 4),
('nome', 4)])
self.form.helper = FormHelper()
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
Fieldset(_('Audiência Pública'),
row1, row2,
form_actions(label='Pesquisar'))
)
class RelatorioMateriasTramitacaoilterSet(django_filters.FilterSet):

10
sapl/base/urls.py

@ -16,13 +16,14 @@ from .forms import LoginForm, NovaSenhaForm, RecuperarSenhaForm
from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
CreateUsuarioView, DeleteUsuarioView, EditUsuarioView,
HelpTopicView, ListarUsuarioView, LogotipoView,
RelatorioAtasView, RelatorioDataFimPrazoTramitacaoView,
RelatorioAtasView, RelatorioAudienciaView,
RelatorioDataFimPrazoTramitacaoView,
RelatorioHistoricoTramitacaoView,
RelatorioMateriasPorAnoAutorTipoView,
RelatorioMateriasPorAutorView,
RelatorioReuniaoView,
RelatorioMateriasTramitacaoView,
RelatorioPresencaSessaoView, SaplSearchView)
RelatorioPresencaSessaoView,
RelatorioReuniaoView, SaplSearchView)
app_name = AppConfig.name
@ -108,6 +109,9 @@ urlpatterns = [
url(r'^sistema/relatorios/reuniao$',
RelatorioReuniaoView.as_view(),
name='reuniao'),
url(r'^sistema/relatorios/audiencia$',
RelatorioAudienciaView.as_view(),
name='audiencia'),
url(r'^email/validate/(?P<uidb64>[0-9A-Za-z_\-]+)/'
'(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})$',

44
sapl/base/views.py

@ -25,7 +25,8 @@ from sapl import settings
from sapl.base.forms import AutorForm, AutorFormForAdmin, TipoAutorForm
from sapl.base.models import Autor, TipoAutor
from sapl.crud.base import CrudAux, make_pagination
from sapl.comissoes.models import Reuniao
from sapl.audiencia.models import AudienciaPublica, TipoAudienciaPublica
from sapl.comissoes.models import Reuniao, Comissao
from sapl.materia.models import (Autoria, MateriaLegislativa,
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao)
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
@ -35,13 +36,14 @@ from sapl.utils import (parlamentares_ativos, sapl_logger,
from .forms import (AlterarSenhaForm, CasaLegislativaForm,
ConfiguracoesAppForm, RelatorioAtasFilterSet,
RelatorioAudienciaFilterSet,
RelatorioDataFimPrazoTramitacaoFilterSet,
RelatorioHistoricoTramitacaoFilterSet,
RelatorioMateriasPorAnoAutorTipoFilterSet,
RelatorioMateriasPorAutorFilterSet,
RelatorioReuniaoFilterSet,
RelatorioMateriasTramitacaoilterSet,
RelatorioPresencaSessaoFilterSet, UsuarioCreateForm,
RelatorioPresencaSessaoFilterSet,
RelatorioReuniaoFilterSet, UsuarioCreateForm,
UsuarioEditForm)
from .models import AppConfig, CasaLegislativa
@ -457,18 +459,52 @@ class RelatorioReuniaoView(FilterView):
if not self.filterset.form.is_valid():
return context
qr = self.request.GET.copy()
context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''
context['show_results'] = show_results_filter_set(qr)
if self.request.GET['comissao']:
tipo = self.request.GET['comissao']
comissao = self.request.GET['comissao']
context['comissao'] = (str(Comissao.objects.get(id=comissao)))
else:
context['comissao'] = ''
return context
class RelatorioAudienciaView(FilterView):
model = AudienciaPublica
filterset_class = RelatorioAudienciaFilterSet
template_name = 'base/RelatorioAudiencia_filter.html'
def get_filterset_kwargs(self, filterset_class):
super(RelatorioAudienciaView,
self).get_filterset_kwargs(filterset_class)
kwargs = {'data': self.request.GET or None}
return kwargs
def get_context_data(self, **kwargs):
context = super(RelatorioAudienciaView,
self).get_context_data(**kwargs)
context['title'] = _('Audiência Pública')
if not self.filterset.form.is_valid():
return context
qr = self.request.GET.copy()
context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''
context['show_results'] = show_results_filter_set(qr)
if self.request.GET['tipo']:
tipo = self.request.GET['tipo']
context['tipo'] = (str(TipoAudienciaPublica.objects.get(id=tipo)))
else:
context['tipo'] = ''
return context
class RelatorioMateriasTramitacaoView(FilterView):
model = MateriaLegislativa

34
sapl/templates/base/RelatorioAudiencia_filter.html

@ -0,0 +1,34 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block base_content %}
{% if not show_results %}
{% crispy filter.form %}
{% endif %}
{% if show_results %}
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'sapl.base:audiencia' %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a>
</div>
<br /><br /><br /><br />
<table class="table table-bordered table-hover">
<thead class="thead-default" >
<tr class="active">
<th>Tipo de Audiência</th>
<th>Nome</th>
</tr>
</thead>
<tbody>
{% for audiencia in object_list %}
<tr>
<td><a href="{% url 'sapl.audiencia:audiencia_detail' audiencia.pk %}">
{{audiencia.tipo}}
</a></td>
<td>{{audiencia.nome}}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% endblock base_content %}

38
sapl/templates/base/RelatorioReuniao_filter.html

@ -12,23 +12,27 @@
<a href="{% url 'sapl.base:reuniao' %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a>
</div>
<br /><br /><br /><br />
<table class="table table-bordered table-hover">
<thead class="thead-default" >
<tr class="active">
<th>Comissao</th>
<th>Nome</th>
</tr>
</thead>
<tbody>
{% for reuniao in object_list %}
<tr>
<td><a href="{% url 'sapl.comissoes:reuniao_detail' reuniao.pk %}">
{{reuniao.comissao}}
</a></td>
<td>{{reuniao.nome}}</td>
{% if object_list|length > 0 %}
<table class="table table-bordered table-hover">
<thead class="thead-default" >
<tr class="active">
<th>Comissao</th>
<th>Nome</th>
</tr>
{% endfor %}
</tbody>
</table>
</thead>
<tbody>
{% for reuniao in object_list %}
<tr>
<td><a href="{% url 'sapl.comissoes:reuniao_detail' reuniao.pk %}">
{{reuniao.comissao}}
</a></td>
<td>{{reuniao.nome}}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<font size="5"><p align="center">Nenhum reunião foi encontrada!</p></font>
{% endif %}
{% endif %}
{% endblock base_content %}

4
sapl/templates/base/relatorios_list.html

@ -44,6 +44,10 @@
<td><a href="{% url 'sapl.base:reuniao' %}">Reunião de Comissão</a></td>
<td> Reunião de Comissão por data. </td>
</tr>
<tr>
<td><a href="{% url 'sapl.base:audiencia' %}">Audiência Pública</a></td>
<td> Audiência Pública com o tipo. </td>
</tr>
</tbody>
</table>
</fieldset

Loading…
Cancel
Save