Browse Source

inicio do relatorio por mes das normas

pull/2429/head
Cesar Carvalho 7 years ago
parent
commit
c21bd016ea
  1. 41
      sapl/base/forms.py
  2. 5
      sapl/base/urls.py
  3. 36
      sapl/base/views.py
  4. 2
      sapl/templates/base/RelatorioHistoricoTramitacao_filter.html
  5. 2
      sapl/templates/base/RelatorioMateriasPorAutor_filter.html
  6. 38
      sapl/templates/base/RelatorioNormaMes_filter.html
  7. 4
      sapl/templates/base/relatorios_list.html

41
sapl/base/forms.py

@ -23,6 +23,7 @@ from sapl.crispy_layout_mixin import (SaplFormLayout, form_actions, to_column,
from sapl.audiencia.models import AudienciaPublica,TipoAudienciaPublica
from sapl.comissoes.models import Reuniao, Comissao
from sapl.materia.models import (MateriaLegislativa, UnidadeTramitacao, StatusTramitacao)
from sapl.norma.models import (NormaJuridica)
from sapl.parlamentares.models import SessaoLegislativa
from sapl.sessao.models import SessaoPlenaria
from sapl.settings import MAX_IMAGE_UPLOAD_SIZE
@ -688,6 +689,46 @@ class RelatorioAtasFilterSet(django_filters.FilterSet):
)
class RelatorioNormasMesFilterSet(django_filters.FilterSet):
ano = django_filters.ChoiceFilter(required=True,
label='Ano da Norma',
choices=RANGE_ANOS)
filter_overrides = {models.DateField: {
'filter_class': django_filters.DateFromToRangeFilter,
'extra': lambda f: {
'label': '%s (%s)' % (f.verbose_name, _('Ano')),
'widget': RangeWidgetOverride}
}}
class Meta:
model = NormaJuridica
fields = ['ano']
def __init__(self, *args, **kwargs):
super(RelatorioNormasMesFilterSet, self).__init__(
*args, **kwargs)
self.filters['ano'].label = 'Ano'
self.form.fields['ano'].required = True
row1 = to_row([('ano', 12)])
self.form.helper = FormHelper()
self.form.helper.form_method = 'GET'
self.form.helper.layout = Layout(
Fieldset(_('Normas por mês do ano.'),
row1, form_actions(label='Pesquisar'))
)
@property
def qs(self):
parent = super(RelatorioNormasMesFilterSet, self).qs
return parent.distinct().order_by('data')
class RelatorioPresencaSessaoFilterSet(django_filters.FilterSet):
filter_overrides = {models.DateField: {

5
sapl/base/urls.py

@ -23,7 +23,8 @@ from .views import (AlterarSenha, AppConfigCrud, CasaLegislativaCrud,
RelatorioMateriasPorAutorView,
RelatorioMateriasTramitacaoView,
RelatorioPresencaSessaoView,
RelatorioReuniaoView, SaplSearchView)
RelatorioReuniaoView, SaplSearchView,
RelatorioAtosPublicadosMesView)
app_name = AppConfig.name
@ -88,6 +89,8 @@ urlpatterns = [
template_name='base/relatorios_list.html'), name='relatorios_list'),
url(r'^sistema/relatorios/materia-por-autor$',
RelatorioMateriasPorAutorView.as_view(), name='materia_por_autor'),
url(r'^sistema/relatorios/relatorio-por-mes$',
RelatorioAtosPublicadosMesView.as_view(), name='atos_por_mes'),
url(r'^sistema/relatorios/materia-por-ano-autor-tipo$',
RelatorioMateriasPorAnoAutorTipoView.as_view(),
name='materia_por_ano_autor_tipo'),

36
sapl/base/views.py

@ -30,6 +30,7 @@ from sapl.comissoes.models import Reuniao, Comissao
from sapl.crud.base import CrudAux, make_pagination
from sapl.materia.models import (Autoria, MateriaLegislativa,
TipoMateriaLegislativa, StatusTramitacao, UnidadeTramitacao)
from sapl.norma.models import (NormaJuridica)
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca)
from sapl.utils import (parlamentares_ativos,
@ -45,7 +46,7 @@ from .forms import (AlterarSenhaForm, CasaLegislativaForm,
RelatorioMateriasTramitacaoilterSet,
RelatorioPresencaSessaoFilterSet,
RelatorioReuniaoFilterSet, UsuarioCreateForm,
UsuarioEditForm)
UsuarioEditForm, RelatorioNormasMesFilterSet)
from .models import AppConfig, CasaLegislativa
@ -744,6 +745,39 @@ class RelatorioMateriasPorAutorView(FilterView):
return context
class RelatorioAtosPublicadosMesView(FilterView):
model = NormaJuridica
filterset_class = RelatorioNormasMesFilterSet
template_name = 'base/RelatorioNormaMes_filter.html'
def get_context_data(self, **kwargs):
context = super(RelatorioAtosPublicadosMesView,
self).get_context_data(**kwargs)
context['title'] = _('Normas')
# Verifica se os campos foram preenchidos
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)
context['ano'] = self.request.GET['ano']
normas_mes = {}
# for norma in context['object_list']:
# import ipdb; ipdb.set_trace()
# pass
# context['periodo'] = (
# self.request.GET['data_inicio_0'] +
# ' - ' + self.request.GET['data_inicio_1'])
return context
class ListarUsuarioView(PermissionRequiredMixin, ListView):
model = get_user_model()
template_name = 'auth/user_list.html'

2
sapl/templates/base/RelatorioHistoricoTramitacao_filter.html

@ -30,7 +30,7 @@
<td><a href="{% url 'sapl.materia:tramitacao_list' materia.pk %}">
{{materia.tipo.descricao}} - {{materia.tipo.sigla}} {{materia.numero}}/{{materia.ano}}
</a></td>
<td>{{materia.ementa}}</td>
<td>{{materia.ementa}}<br>{{materia.observacao}}</td>
</tr>
{% endfor %}
</tbody>

2
sapl/templates/base/RelatorioMateriasPorAutor_filter.html

@ -51,7 +51,7 @@
<td><a href="{% url 'sapl.materia:materialegislativa_detail' materia.pk %}">
{{materia.tipo.sigla}} {{materia.numero}}/{{materia.ano}}
</a></td>
<td>{% autoescape off %}{{materia.ementa}}{% endautoescape %}</td>
<td>{% autoescape off %}{{materia.ementa}}<br>{{materia.observacao}}{% endautoescape %}</td>
<td>
{% if materia.autoria_set.first != materia.autoria_set.last %}
{% for autor in materia.autoria_set.all %}

38
sapl/templates/base/RelatorioNormaMes_filter.html

@ -0,0 +1,38 @@
{% 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:historico_tramitacoes' %}" class="btn btn-default">{% trans 'Fazer nova pesquisa' %}</a>
</div>
<br /><br /><br /><br />
<b>PARÂMETROS DE PESQUISA:<br /></b>
&emsp;Ano: {{ ano }} <br />
<br /><br /><br />
<table class="table table-bordered table-hover">
{% for norma in object_list %}
<thead class="thead-default"><tr><td><h3>Mês: {{ norma.data }}</h3></td></tr></thead>
<thead class="thead-default" >
<tr class="active">
<th>Matéria</th>
<th>Norma</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="{% url 'sapl.norma:normajuridica_detail' norma.pk %}">
{{norma.tipo.descricao}} - {{norma.tipo.sigla}} {{norma.numero}}/{{norma.ano}}
</a></td>
<td>{{norma.ementa}}<br>{{norma.observacao}}</td>
</tr>
</tbody>
{% endfor %}
</table>
{% endif %}
{% endblock base_content %}

4
sapl/templates/base/relatorios_list.html

@ -48,6 +48,10 @@
<td><a href="{% url 'sapl.base:audiencia' %}">Audiência Pública</a></td>
<td> Audiência Pública com o tipo. </td>
</tr>
<tr>
<td><a href="{% url 'sapl.base:atos_por_mes' %}">Atos</a></td>
<td> Atos publicados por mês. </td>
</tr>
</tbody>
</table>
</fieldset>

Loading…
Cancel
Save