Browse Source

Finaliza a funcionalidade de todos os campos de pesquisa. Finaliza os campos situacao e localizaçao atual

pull/282/head
Eduardo Calil 9 years ago
parent
commit
46cdbe23c8
  1. 44
      materia/forms.py
  2. 5
      materia/urls.py
  3. 28
      materia/views.py

44
materia/forms.py

@ -1,8 +1,8 @@
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Submit from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Submit
from django import forms from django import forms
from django.core.exceptions import ValidationError
from django.db.models import Max from django.db.models import Max
from django.core.exceptions import ValidationError
from django_filters import FilterSet from django_filters import FilterSet
from django.forms import ModelForm from django.forms import ModelForm
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
@ -800,10 +800,38 @@ class MateriaLegislativaPesquisaFields(FilterSet):
'autoria__partido', 'autoria__partido',
'local_origem_externa'] 'local_origem_externa']
# def filter_tramitacao__status(status):
# ultimas_tramitacoes = Tramitacao.objects.values( def pega_ultima_tramitacao():
# 'materia_id').annotate(data_encaminhamento=Max( ultimas_tramitacoes = Tramitacao.objects.values(
# 'data_encaminhamento'), 'materia_id').annotate(data_encaminhamento=Max(
# id=Max('id')) 'data_encaminhamento'),
# ultimas_tramitacoes = ultimas_tramitacoes.filter(status=status) id=Max('id'))
# return ultimas_tramitacoes.materia lista = [ids.get('id') for ids in ultimas_tramitacoes]
return lista
def filtra_tramitacao_status(status):
lista = pega_ultima_tramitacao()
ultimas_tramitacoes = Tramitacao.objects.filter(id__in=lista,
status=status)
lista = [ids.materia_id for ids in ultimas_tramitacoes]
return lista
def filtra_tramitacao_destino(destino):
lista = pega_ultima_tramitacao()
ultimas_tramitacoes = Tramitacao.objects.filter(
id__in=lista,
unidade_tramitacao_destino=destino)
lista = [ids.materia_id for ids in ultimas_tramitacoes]
return lista
def filtra_tramitacao_destino_and_status(status, destino):
lista = pega_ultima_tramitacao()
ultimas_tramitacoes = Tramitacao.objects.filter(
id__in=lista,
status=status,
unidade_tramitacao_destino=destino)
lista = [ids.materia_id for ids in ultimas_tramitacoes]
return lista

5
materia/urls.py

@ -12,8 +12,7 @@ from materia.views import (AcompanhamentoConfirmarView,
MateriaLegislativaCrud, MateriaLegislativaCrud,
MateriaLegislativaPesquisaView, MateriaTaView, MateriaLegislativaPesquisaView, MateriaTaView,
NumeracaoEditView, NumeracaoView, OrgaoCrud, NumeracaoEditView, NumeracaoView, OrgaoCrud,
OrigemCrud, PesquisaMateriaListView, OrigemCrud, ProposicaoEditView, ProposicaoListView,
ProposicaoEditView, ProposicaoListView,
ProposicaoTaView, ProposicaoView, ProposicaoTaView, ProposicaoView,
RegimeTramitacaoCrud, RelatoriaEditView, RegimeTramitacaoCrud, RelatoriaEditView,
RelatoriaView, StatusTramitacaoCrud, TipoAutorCrud, RelatoriaView, StatusTramitacaoCrud, TipoAutorCrud,
@ -100,8 +99,6 @@ urlpatterns = [
ProposicaoEditView.as_view(), name='editar_proposicao'), ProposicaoEditView.as_view(), name='editar_proposicao'),
url(r'^materia/pesquisar-materia$', url(r'^materia/pesquisar-materia$',
MateriaLegislativaPesquisaView.as_view(), name='pesquisar_materia'), MateriaLegislativaPesquisaView.as_view(), name='pesquisar_materia'),
url(r'^materia/pesquisar-materia-list$',
PesquisaMateriaListView.as_view(), name='pesquisar_materia_list'),
url(r'^materia/(?P<pk>\d+)/acompanhar-materia/$', url(r'^materia/(?P<pk>\d+)/acompanhar-materia/$',
AcompanhamentoMateriaView.as_view(), name='acompanhar_materia'), AcompanhamentoMateriaView.as_view(), name='acompanhar_materia'),
url(r'^materia/(?P<pk>\d+)/acompanhar-confirmar$', url(r'^materia/(?P<pk>\d+)/acompanhar-confirmar$',

28
materia/views.py

@ -26,6 +26,8 @@ from sapl.utils import get_base_url
from .forms import (AcompanhamentoMateriaForm, AutoriaForm, from .forms import (AcompanhamentoMateriaForm, AutoriaForm,
DespachoInicialForm, DocumentoAcessorioForm, DespachoInicialForm, DocumentoAcessorioForm,
FormularioCadastroForm, FormularioSimplificadoForm, FormularioCadastroForm, FormularioSimplificadoForm,
filtra_tramitacao_status, filtra_tramitacao_destino,
filtra_tramitacao_destino_and_status,
LegislacaoCitadaForm, MateriaAnexadaForm, LegislacaoCitadaForm, MateriaAnexadaForm,
MateriaLegislativaPesquisaFields, NumeracaoForm, MateriaLegislativaPesquisaFields, NumeracaoForm,
ProposicaoForm, RelatoriaForm, TramitacaoForm) ProposicaoForm, RelatoriaForm, TramitacaoForm)
@ -226,7 +228,7 @@ class MateriaAnexadaEditView(FormView):
def get_success_url(self): def get_success_url(self):
pk = self.kwargs['pk'] pk = self.kwargs['pk']
return reverse('materia:materia_anexada', kwargs={'pk': pk}) return reverse('materia_anexada', kwargs={'pk': pk})
class DespachoInicialView(CreateView): class DespachoInicialView(CreateView):
@ -1222,15 +1224,29 @@ class MateriaLegislativaPesquisaView(FilterView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
filterset_class = self.get_filterset_class() filterset_class = self.get_filterset_class()
self.filterset = self.get_filterset(filterset_class) self.filterset = self.get_filterset(filterset_class)
status_tramitacao = self.filterset.data.get('tramitacao__status') status_tramitacao = self.filterset.data.get('tramitacao__status')
if status_tramitacao and status_tramitacao != '': unidade_destino = self.filterset.data.get(
status = filter_tramitacao__status(status_tramitacao) 'tramitacao__unidade_tramitacao_destino')
mat_filt_ids = [ids.get('materia_id') for ids in status] if (status_tramitacao and status_tramitacao != '' and
# import ipdb; ipdb.set_trace() unidade_destino and unidade_destino != ''):
lista = filtra_tramitacao_destino_and_status(status_tramitacao,
unidade_destino)
self.object_list = self.filterset.qs.filter(
id__in=lista)
elif status_tramitacao and status_tramitacao != '':
lista = filtra_tramitacao_status(status_tramitacao)
self.object_list = self.filterset.qs.filter( self.object_list = self.filterset.qs.filter(
id__in=mat_filt_ids) id__in=lista)
elif unidade_destino and unidade_destino != '':
lista = filtra_tramitacao_destino(unidade_destino)
self.object_list = self.filterset.qs.filter(
id__in=lista)
else: else:
self.object_list = self.filterset.qs self.object_list = self.filterset.qs
context = self.get_context_data(filter=self.filterset, context = self.get_context_data(filter=self.filterset,
object_list=self.object_list) object_list=self.object_list)
return self.render_to_response(context) return self.render_to_response(context)

Loading…
Cancel
Save