Browse Source

Arruma o bug na paginacao. Ordena as materias

pull/282/head
Eduardo Calil 9 years ago
parent
commit
7c0c6c6c31
  1. 12
      materia/forms.py
  2. 44
      materia/views.py
  3. 37
      templates/materia/materialegislativa_filter.html
  4. 37
      templates/paginacao_pesquisa_materia.html

12
materia/forms.py

@ -23,9 +23,6 @@ from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria,
StatusTramitacao, TipoAutor, StatusTramitacao, TipoAutor,
TipoMateriaLegislativa, Tramitacao, UnidadeTramitacao) TipoMateriaLegislativa, Tramitacao, UnidadeTramitacao)
ORDENACAO_MATERIAIS = [(1, 'Crescente'),
(2, 'Decrescente')]
def em_tramitacao(): def em_tramitacao():
return [('', 'Tanto Faz'), return [('', 'Tanto Faz'),
@ -827,8 +824,9 @@ def pega_ultima_tramitacao():
def filtra_tramitacao_status(status): def filtra_tramitacao_status(status):
lista = pega_ultima_tramitacao() lista = pega_ultima_tramitacao()
ultimas_tramitacoes = Tramitacao.objects.filter(id__in=lista, ultimas_tramitacoes = Tramitacao.objects.filter(
status=status) id__in=lista,
status=status).distinct()
lista = [ids.materia_id for ids in ultimas_tramitacoes] lista = [ids.materia_id for ids in ultimas_tramitacoes]
return lista return lista
@ -837,7 +835,7 @@ def filtra_tramitacao_destino(destino):
lista = pega_ultima_tramitacao() lista = pega_ultima_tramitacao()
ultimas_tramitacoes = Tramitacao.objects.filter( ultimas_tramitacoes = Tramitacao.objects.filter(
id__in=lista, id__in=lista,
unidade_tramitacao_destino=destino) unidade_tramitacao_destino=destino).distinct()
lista = [ids.materia_id for ids in ultimas_tramitacoes] lista = [ids.materia_id for ids in ultimas_tramitacoes]
return lista return lista
@ -847,6 +845,6 @@ def filtra_tramitacao_destino_and_status(status, destino):
ultimas_tramitacoes = Tramitacao.objects.filter( ultimas_tramitacoes = Tramitacao.objects.filter(
id__in=lista, id__in=lista,
status=status, status=status,
unidade_tramitacao_destino=destino) unidade_tramitacao_destino=destino).distinct()
lista = [ids.materia_id for ids in ultimas_tramitacoes] lista = [ids.materia_id for ids in ultimas_tramitacoes]
return lista return lista

44
materia/views.py

@ -1233,22 +1233,56 @@ class MateriaLegislativaPesquisaView(FilterView):
lista = filtra_tramitacao_destino_and_status(status_tramitacao, lista = filtra_tramitacao_destino_and_status(status_tramitacao,
unidade_destino) unidade_destino)
self.object_list = self.filterset.qs.filter( self.object_list = self.filterset.qs.filter(
id__in=lista) id__in=lista).distinct().order_by('tipo', 'numero', 'ano')
elif status_tramitacao and status_tramitacao != '': elif status_tramitacao and status_tramitacao != '':
lista = filtra_tramitacao_status(status_tramitacao) lista = filtra_tramitacao_status(status_tramitacao)
self.object_list = self.filterset.qs.filter( self.object_list = self.filterset.qs.filter(
id__in=lista) id__in=lista).distinct().order_by('tipo', 'numero', 'ano')
elif unidade_destino and unidade_destino != '': elif unidade_destino and unidade_destino != '':
lista = filtra_tramitacao_destino(unidade_destino) lista = filtra_tramitacao_destino(unidade_destino)
self.object_list = self.filterset.qs.filter( self.object_list = self.filterset.qs.filter(
id__in=lista) id__in=lista).distinct().order_by('tipo', 'numero', 'ano')
else: else:
self.object_list = self.filterset.qs self.object_list = self.filterset.qs.order_by(
'tipo', 'numero', 'ano')
numero = self.filterset.data.get('numero')
numero_protocolo = self.filterset.data.get('numero_protocolo')
ano = self.filterset.data.get('ano')
tipo = self.filterset.data.get('tipo')
data_a = self.filterset.data.get('data_apresentacao')
data_p = self.filterset.data.get('data_publicacao')
autor = self.filterset.data.get('autoria__autor')
tipo_autor = self.filterset.data.get('autoria__autor__tipo')
partido = self.filterset.data.get('autoria__partido')
relatoria = self.filterset.data.get('relatoria__parlamentar__id')
origem = self.filterset.data.get('local_origem_externa')
destino = self.filterset.data.get(
'tramitacao__unidade_tramitacao_destino')
status = self.filterset.data.get('tramitacao__status')
em_tram = self.filterset.data.get('em_tramitacao')
ementa = self.filterset.data.get('ementa')
u1 = "&numero="+numero+"&numero_protocolo="+numero_protocolo+"&"
u2 = "ano="+ano+"&tipo="+tipo+"&data_apresentacao="+data_a+"&"
u3 = "data_publicacao="+data_p+"&autoria__autor="+autor+"&"
u4 = "autoria__autor__tipo="+tipo_autor+"&"
u5 = "autoria__partido="+partido+"&"
u6 = "relatoria__parlamentar__id="+relatoria+"&"
u7 = "local_origem_externa="+origem+"&"
u8 = "tramitacao__unidade_tramitacao_destino="+destino+"&"
u9 = "tramitacao__status="+status+"&"
u10 = "em_tramitacao="+em_tram+"&ementa="+ementa
url = u1+u2+u3+u4+u5+u6+u7+u8+u9+u10
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
)
return self.render_to_response(context) return self.render_to_response(context)

37
templates/materia/materialegislativa_filter.html

@ -28,41 +28,6 @@
{% endfor %} {% endfor %}
</table> </table>
{% if is_paginated %} {% include "paginacao_pesquisa_materia.html" %}
<nav class="text-center">
<ul class="pagination">
{% if page_obj.has_previous %}
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.previous_page_number }}">
<span class="pager-prev">Anterior</span>
</a>
</li>
{% else %}
<li class="pager-prev disabled"><a href="">Anterior</a></li>
{% endif %}
{% for page in page_range %}
{% if page == None or page == 'None' %}
<li class="page-item disabled">
<a class="page-link" href="">...</a>
</li>
{% else %}
<li {% if page == page_obj.number %} class="page-item active" {% endif %}>
<a class="page-link" href="?page={{ page }}">{{ page }}</a>
</li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.next_page_number }}">
<span class="pager-next">Próxima</span>
</a>
</li>
{% else %}
<li class="pager-next disabled"><a href="">Próxima</a></li>
{% endif %}
</ul>
</nav>
{% endif %}
{% endblock detail_content %} {% endblock detail_content %}

37
templates/paginacao_pesquisa_materia.html

@ -0,0 +1,37 @@
{% if is_paginated %}
<nav class="text-center">
<ul class="pagination">
{% if page_obj.has_previous %}
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.previous_page_number }}{{filter_url}}">
<span class="pager-prev">Anterior</span>
</a>
</li>
{% else %}
<li class="pager-prev disabled"><a href="">Anterior</a></li>
{% endif %}
{% for page in page_range %}
{% if page == None or page == 'None' %}
<li class="page-item disabled">
<a class="page-link" href="">...</a>
</li>
{% else %}
<li {% if page == page_obj.number %} class="page-item active" {% endif %}>
<a class="page-link" href="?page={{ page }}{{filter_url}}">{{ page }}</a>
</li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li class="page-item">
<a class="page-link" href="?page={{ page_obj.next_page_number }}{{filter_url}}">
<span class="pager-next">Próxima</span>
</a>
</li>
{% else %}
<li class="pager-next disabled"><a href="">Próxima</a></li>
{% endif %}
</ul>
</nav>
{% endif %}
Loading…
Cancel
Save