Browse Source

Adiciona tela de relatório de matéria por tramitacao

pull/552/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
207f8b1990
  1. 32
      sapl/base/forms.py
  2. 6
      sapl/base/urls.py
  3. 28
      sapl/base/views.py
  4. 60
      sapl/templates/base/RelatorioMateriasPorTramitacao_filter.html
  5. 2
      sapl/templates/base/relatorios_list.html

32
sapl/base/forms.py

@ -37,6 +37,38 @@ class RangeWidgetOverride(forms.MultiWidget):
return ''.join(rendered_widgets)
class RelatorioMateriasTramitacaoilterSet(django_filters.FilterSet):
ano = django_filters.ChoiceFilter(required=True,
label=u'Ano da Matéria',
choices=RANGE_ANOS)
class Meta:
model = MateriaLegislativa
fields = ['ano', 'tipo', 'tramitacao__unidade_tramitacao_local',
'tramitacao__status']
def __init__(self, *args, **kwargs):
super(RelatorioMateriasTramitacaoilterSet, self).__init__(
*args, **kwargs)
self.filters['tipo'].label = 'Tipo de Matéria'
row1 = to_row([('ano', 12)])
row2 = to_row([('tipo', 12)])
row3 = to_row([('tramitacao__unidade_tramitacao_local', 12)])
row4 = to_row([('tramitacao__status', 12)])
self.form.helper = FormHelper()
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
Fieldset(_('Pesquisa de Matéria em Tramitação'),
row1, row2, row3, row4,
form_actions(save_label='Pesquisar'))
)
class RelatorioMateriasPorAnoAutorTipoFilterSet(django_filters.FilterSet):
ano = django_filters.ChoiceFilter(required=True,

6
sapl/base/urls.py

@ -6,7 +6,8 @@ from .apps import AppConfig
from .forms import LoginForm
from .views import (CasaLegislativaCrud, HelpView,
RelatorioMateriasPorAnoAutorTipoView,
RelatorioMateriasPorAutorView)
RelatorioMateriasPorAutorView,
RelatorioMateriasTramitacaoView)
app_name = AppConfig.name
@ -31,4 +32,7 @@ urlpatterns = [
url(r'^relatorio/materia-por-ano-autor-tipo$',
RelatorioMateriasPorAnoAutorTipoView.as_view(),
name='materia_por_ano_autor_tipo'),
url(r'^relatorio/materia-por-tramitacao$',
RelatorioMateriasTramitacaoView.as_view(),
name='materia_por_tramitacao'),
]

28
sapl/base/views.py

@ -12,7 +12,8 @@ from sapl.utils import permissao_tb_aux
from .forms import (CasaLegislativaForm,
RelatorioMateriasPorAnoAutorTipoFilterSet,
RelatorioMateriasPorAutorFilterSet)
RelatorioMateriasPorAutorFilterSet,
RelatorioMateriasTramitacaoilterSet)
from .models import CasaLegislativa
@ -20,6 +21,31 @@ def get_casalegislativa():
return CasaLegislativa.objects.first()
class RelatorioMateriasTramitacaoView(FilterView):
model = MateriaLegislativa
filterset_class = RelatorioMateriasTramitacaoilterSet
template_name = 'base/RelatorioMateriasPorTramitacao_filter.html'
def get_context_data(self, **kwargs):
context = super(RelatorioMateriasTramitacaoView,
self).get_context_data(**kwargs)
context['title'] = _('Matérias por Ano, Autor e Tipo')
qtdes = {}
for tipo in TipoMateriaLegislativa.objects.all():
qs = kwargs['object_list']
qtde = len(qs.filter(tipo_id=tipo.id))
if qtde > 0:
qtdes[tipo] = qtde
context['qtdes'] = qtdes
qr = self.request.GET.copy()
context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else ''
return context
class RelatorioMateriasPorAnoAutorTipoView(FilterView):
model = MateriaLegislativa
filterset_class = RelatorioMateriasPorAnoAutorTipoFilterSet

60
sapl/templates/base/RelatorioMateriasPorTramitacao_filter.html

@ -0,0 +1,60 @@
{% extends "crud/list.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block base_content %}
{% if not filter_url %}
{% crispy filter.form %}
{% endif %}
{% if filter_url %}
<div class="actions btn-group pull-right" role="group">
<a href="{% url 'sapl.base:materia_por_tramitacao' %}" 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 colspan="2" class="text-center">QUADRO GERAL</th></tr>
<tr class="active">
<th>Tipo Matéria</th>
<th>Quantidade</th>
</tr>
</thead>
<tbody>
{% for key, value in qtdes.items %}
<tr>
<td>{{key.sigla}} - {{key}}</td>
<td>{{value}}</td>
</tr>
{% endfor %}
</tbody>
</table>
<table class="table table-bordered table-hover">
<thead class="thead-default" >
<tr class="active">
<th>Matéria</th>
<th>Ementa</th>
<th>Autor(es)</th>
</tr>
</thead>
<tbody>
{% for materia in object_list %}
<tr>
<td><a href="{% url 'sapl.materia:materialegislativa_detail' materia.pk %}">
{{materia.tipo.descricao}} - {{materia.tipo.sigla}} {{materia.numero}}/{{materia.ano}}
</a></td>
<td>{{materia.ementa}}</td>
<td>
{% for autor in materia.autoria_set.all %}
{{autor.autor}}<br />
{% endfor %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% endblock base_content %}

2
sapl/templates/base/relatorios_list.html

@ -13,7 +13,7 @@
</thead>
<tbody>
<tr>
<td><a href="">Matérias em tramitação</a></td>
<td><a href="{% url 'sapl.base:materia_por_tramitacao' %}">Matérias em tramitação</a></td>
<td> Matérias Legislativas por Ano, Tipo, Local atual e Status da Tramitação informados. </td>
</tr>
<tr>

Loading…
Cancel
Save