|
@ -1199,6 +1199,36 @@ class MateriaLegislativaPesquisaView(FilterView): |
|
|
filterset_class = MateriaLegislativaFilterSet |
|
|
filterset_class = MateriaLegislativaFilterSet |
|
|
paginate_by = 10 |
|
|
paginate_by = 10 |
|
|
|
|
|
|
|
|
|
|
|
def get_filterset_kwargs(self, filterset_class): |
|
|
|
|
|
""" |
|
|
|
|
|
Returns the keyword arguments for instanciating the filterset. |
|
|
|
|
|
""" |
|
|
|
|
|
kwargs = {'data': self.request.GET or None} |
|
|
|
|
|
|
|
|
|
|
|
status_tramitacao = self.request.GET.get('tramitacao__status') |
|
|
|
|
|
unidade_destino = self.request.GET.get( |
|
|
|
|
|
'tramitacao__unidade_tramitacao_destino') |
|
|
|
|
|
|
|
|
|
|
|
qs = self.get_queryset() |
|
|
|
|
|
|
|
|
|
|
|
if status_tramitacao and unidade_destino: |
|
|
|
|
|
lista = filtra_tramitacao_destino_and_status(status_tramitacao, |
|
|
|
|
|
unidade_destino) |
|
|
|
|
|
qs = qs.filter(id__in=lista).distinct() |
|
|
|
|
|
|
|
|
|
|
|
elif status_tramitacao: |
|
|
|
|
|
lista = filtra_tramitacao_status(status_tramitacao) |
|
|
|
|
|
qs = qs.filter(id__in=lista).distinct() |
|
|
|
|
|
|
|
|
|
|
|
elif unidade_destino: |
|
|
|
|
|
lista = filtra_tramitacao_destino(unidade_destino) |
|
|
|
|
|
qs = qs.filter(id__in=lista).distinct() |
|
|
|
|
|
|
|
|
|
|
|
kwargs.update({ |
|
|
|
|
|
'queryset': qs, |
|
|
|
|
|
}) |
|
|
|
|
|
return kwargs |
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
def get_context_data(self, **kwargs): |
|
|
context = super(MateriaLegislativaPesquisaView, |
|
|
context = super(MateriaLegislativaPesquisaView, |
|
|
self).get_context_data(**kwargs) |
|
|
self).get_context_data(**kwargs) |
|
@ -1212,36 +1242,13 @@ class MateriaLegislativaPesquisaView(FilterView): |
|
|
return context |
|
|
return context |
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
def get(self, request, *args, **kwargs): |
|
|
filterset_class = self.get_filterset_class() |
|
|
super(MateriaLegislativaPesquisaView, self).get(request) |
|
|
self.filterset = self.get_filterset(filterset_class) |
|
|
|
|
|
|
|
|
|
|
|
data = self.filterset.data |
|
|
|
|
|
|
|
|
|
|
|
status_tramitacao = data.get('tramitacao__status') |
|
|
|
|
|
unidade_destino = data.get('tramitacao__unidade_tramitacao_destino') |
|
|
|
|
|
|
|
|
|
|
|
if status_tramitacao and unidade_destino: |
|
|
|
|
|
lista = filtra_tramitacao_destino_and_status(status_tramitacao, |
|
|
|
|
|
unidade_destino) |
|
|
|
|
|
self.object_list = self.filterset.qs.filter( |
|
|
|
|
|
id__in=lista).distinct() |
|
|
|
|
|
|
|
|
|
|
|
elif status_tramitacao: |
|
|
|
|
|
lista = filtra_tramitacao_status(status_tramitacao) |
|
|
|
|
|
self.object_list = self.filterset.qs.filter( |
|
|
|
|
|
id__in=lista).distinct() |
|
|
|
|
|
|
|
|
|
|
|
elif unidade_destino: |
|
|
|
|
|
lista = filtra_tramitacao_destino(unidade_destino) |
|
|
|
|
|
self.object_list = self.filterset.qs.filter( |
|
|
|
|
|
id__in=lista).distinct() |
|
|
|
|
|
else: |
|
|
|
|
|
self.object_list = self.filterset.qs |
|
|
|
|
|
|
|
|
|
|
|
# Se a pesquisa estiver quebrando com a paginação |
|
|
# Se a pesquisa estiver quebrando com a paginação |
|
|
# Olhe esta função abaixo |
|
|
# Olhe esta função abaixo |
|
|
# Provavelmente você criou um novo campo no Form/Field |
|
|
# Provavelmente você criou um novo campo no Form/Field |
|
|
# Então a ordem da URL está diferente |
|
|
# Então a ordem da URL está diferente |
|
|
|
|
|
data = self.filterset.data |
|
|
if (data and data.get('tipo') is not None): |
|
|
if (data and data.get('tipo') is not None): |
|
|
url = "&"+str(self.request.environ['QUERY_STRING']) |
|
|
url = "&"+str(self.request.environ['QUERY_STRING']) |
|
|
if url[:5] == "&page": |
|
|
if url[:5] == "&page": |
|
@ -1250,14 +1257,14 @@ class MateriaLegislativaPesquisaView(FilterView): |
|
|
else: |
|
|
else: |
|
|
url = '' |
|
|
url = '' |
|
|
|
|
|
|
|
|
|
|
|
self.filterset.form.fields['o'].label = _('Ordenação') |
|
|
|
|
|
|
|
|
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, |
|
|
filter_url=url, |
|
|
filter_url=url, |
|
|
numero_res=len(self.object_list) |
|
|
numero_res=len(self.object_list) |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
self.filterset.form.fields['o'].label = _('Ordenação') |
|
|
|
|
|
|
|
|
|
|
|
return self.render_to_response(context) |
|
|
return self.render_to_response(context) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|