From fd4f89fa22ba43c6175595ebf5cd2650f07f4f15 Mon Sep 17 00:00:00 2001 From: cristian-longhi Date: Tue, 28 Aug 2018 11:12:34 -0300 Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=A3o=20do=20Relat=C3=B3rio=20de?= =?UTF-8?q?=20Mat=C3=A9rias=20em=20Tramita=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/base/forms.py | 15 ++++++++++++--- sapl/base/views.py | 16 +++++++++++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/sapl/base/forms.py b/sapl/base/forms.py index b71d161da..227037ffd 100644 --- a/sapl/base/forms.py +++ b/sapl/base/forms.py @@ -17,7 +17,7 @@ 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.materia.models import MateriaLegislativa +from sapl.materia.models import (MateriaLegislativa, UnidadeTramitacao, StatusTramitacao) from sapl.parlamentares.models import SessaoLegislativa from sapl.sessao.models import SessaoPlenaria from sapl.settings import MAX_IMAGE_UPLOAD_SIZE @@ -671,14 +671,23 @@ class RelatorioMateriasTramitacaoilterSet(django_filters.FilterSet): label='Ano da Matéria', choices=RANGE_ANOS) + tramitacao__unidade_tramitacao_destino = django_filters.ModelChoiceFilter( + queryset=UnidadeTramitacao.objects.all(), + label=_('Unidade Atual')) + + tramitacao__status = django_filters.ModelChoiceFilter( + queryset=StatusTramitacao.objects.all(), + label=_('Status Atual')) + @property def qs(self): parent = super(RelatorioMateriasTramitacaoilterSet, self).qs return parent.distinct().order_by('-ano', 'tipo', '-numero') + class Meta: model = MateriaLegislativa - fields = ['ano', 'tipo', 'tramitacao__unidade_tramitacao_local', + fields = ['ano', 'tipo', 'tramitacao__unidade_tramitacao_destino', 'tramitacao__status'] def __init__(self, *args, **kwargs): @@ -689,7 +698,7 @@ class RelatorioMateriasTramitacaoilterSet(django_filters.FilterSet): row1 = to_row([('ano', 12)]) row2 = to_row([('tipo', 12)]) - row3 = to_row([('tramitacao__unidade_tramitacao_local', 12)]) + row3 = to_row([('tramitacao__unidade_tramitacao_destino', 12)]) row4 = to_row([('tramitacao__status', 12)]) self.form.helper = FormHelper() diff --git a/sapl/base/views.py b/sapl/base/views.py index 870fbbaa5..7ebe0f4f7 100644 --- a/sapl/base/views.py +++ b/sapl/base/views.py @@ -395,8 +395,23 @@ class RelatorioMateriasTramitacaoView(FilterView): context['title'] = _('Matérias em Tramitação') + qr = self.request.GET.copy() qs = context['object_list'] qs = qs.filter(em_tramitacao=True) + + if 'tramitacao__unidade_tramitacao_destino' in qr and qr['tramitacao__unidade_tramitacao_destino'] != '' : + id_materias = [] + for item in qs: + if str(item.tramitacao_set.order_by('-id').first().unidade_tramitacao_destino_id) == qr['tramitacao__unidade_tramitacao_destino']: + id_materias.append(item.id) + qs = qs.filter(em_tramitacao=True, id__in=id_materias) + if 'tramitacao__status' in qr and qr['tramitacao__status'] != '' : + id_materias = [] + for item in qs: + if str(item.tramitacao_set.order_by('-id').first().status_id) == qr['tramitacao__status']: + id_materias.append(item.id) + qs = qs.filter(em_tramitacao=True, id__in=id_materias) + context['object_list'] = qs qtdes = {} @@ -407,7 +422,6 @@ class RelatorioMateriasTramitacaoView(FilterView): qtdes[tipo] = qtde context['qtdes'] = qtdes - qr = self.request.GET.copy() context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else '' context['show_results'] = show_results_filter_set(qr)