Browse Source

Fix #1934 ordenaçao na tela de proposiçoes pendentes

pull/2033/head
Talitha 8 years ago
parent
commit
41f5a379d9
  1. 34
      sapl/base/templatetags/common_tags.py
  2. 34
      sapl/templates/materia/prop_pendentes_list.html

34
sapl/base/templatetags/common_tags.py

@ -3,7 +3,7 @@ from django import template
from django.template.defaultfilters import stringfilter from django.template.defaultfilters import stringfilter
from sapl.base.models import AppConfig from sapl.base.models import AppConfig
from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa, Proposicao
from sapl.norma.models import NormaJuridica from sapl.norma.models import NormaJuridica
from sapl.parlamentares.models import Filiacao from sapl.parlamentares.models import Filiacao
from sapl.utils import filiacao_data from sapl.utils import filiacao_data
@ -11,6 +11,11 @@ from sapl.utils import filiacao_data
register = template.Library() register = template.Library()
@register.simple_tag
def define(arg):
return arg
@register.simple_tag @register.simple_tag
def field_verbose_name(instance, field_name): def field_verbose_name(instance, field_name):
return instance._meta.get_field(field_name).verbose_name return instance._meta.get_field(field_name).verbose_name
@ -34,6 +39,33 @@ def model_verbose_name_plural(class_name):
return model._meta.verbose_name_plural return model._meta.verbose_name_plural
@register.filter
def split(value, arg):
return value.split(arg)
@register.filter
def sort_by_keys(value, key):
transformed = []
key_descricao = ''
id_props = [x.id for x in value]
qs = Proposicao.objects.filter(pk__in=id_props)
if key[0] == '-':
key_descricao = '-'
if key == '1' or key == '-1':
key_descricao += 'data_envio'
elif key == '2' or key == '-2':
key_descricao += 'tipo'
elif key == '3' or key == '-3':
key_descricao += 'descricao'
else:
key_descricao += 'autor'
transformed = qs.order_by(key_descricao)
return transformed
@register.filter @register.filter
def lookup(d, key): def lookup(d, key):
return d[key] if key in d else [] return d[key] if key in d else []

34
sapl/templates/materia/prop_pendentes_list.html

@ -4,31 +4,50 @@
{% load common_tags %} {% load common_tags %}
{% block base_content %} {% block base_content %}
<fieldset> <fieldset>
<p id='sort_list' ></p>
<legend>Proposições Não Recebidas</legend> <legend>Proposições Não Recebidas</legend>
{% if not object_list %} {% if not object_list %}
<p>{{ NO_ENTRIES_MSG }}</p> <p>{{ NO_ENTRIES_MSG }}</p>
{% else %} {% else %}
<table class="table table-striped table-hover"> <table class="table">
<thead> <thead>
<tr> <tr>
<th>Data de Envio</th> {% with 'Data Envio,Tipo,Descrição,Autor' as list %}
<th>Tipo</th> {% for name in list|split:"," %}
<th>Descrição</th> <th>
<th>Autor</th> <a onClick="sortObj({{object_list}}, request.GET.o)" title="{% trans 'Clique para alterar a ordem a listagem'%}" href="?o={% if 'o' not in request.GET and forloop.counter == 1 or 'o' in request.GET and forloop.counter|safe == request.GET.o %}-{%endif%}{{forloop.counter}}">
{{ name }}
{% if 'o' in request.GET %}
{% if 'o' not in request.GET and forloop.counter == 1 or 'o' in request.GET and forloop.counter|safe == request.GET.o %}
<span class="caret top" title="{% trans 'Listado na Ordem Ascendente'%}"></span>
{% elif 'o' in request.GET and forloop.counter == request.GET.o|str2intabs %}
<span class="caret" title="{% trans 'Listado na Ordem Descendente'%}"></span>
{%endif%}
{%endif%}
</a>
</th>
{% endfor %}
{% if not AppConfig.receber_recibo_proposicao %} {% if not AppConfig.receber_recibo_proposicao %}
<th>Código do Documento</th> <th>Código do Documento</th>
{% endif %} {% endif %}
{% endwith %}
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for prop in object_list %} {% if 'o' in request.GET %}
{% define object_list|sort_by_keys:request.GET.o as list %}
{% else %}
{% define object_list as list %}
{% endif %}
{% for prop in list %}
<tr> <tr>
<td> <td>
<a href="{% url 'sapl.materia:proposicao_detail' prop.pk %}">{{ prop.data_envio|localtime|date:"d/m/Y H:i:s" }}</a> <a href="{% url 'sapl.materia:proposicao_detail' prop.pk %}">{{ prop.data_envio|localtime|date:"d/m/Y H:i:s" }}</a>
</td> </td>
<td>{{ prop.tipo.descricao }}</td> <td>{{ prop.tipo.descricao }}</td>
<td>{{ prop.descricao }}</td> <td>{{ prop.descricao }}</td>
<td>{{prop.autor}}</td> <td>{{prop.autor.nome }} - {{prop.autor.cargo }}</td>
<td> <td>
{% if not AppConfig.receber_recibo_proposicao %} {% if not AppConfig.receber_recibo_proposicao %}
{%if prop.hash_code %} {%if prop.hash_code %}
@ -44,5 +63,6 @@
</table> </table>
{% endif %} {% endif %}
</fieldset> </fieldset>
{% include 'paginacao.html'%} {% include 'paginacao.html'%}
{% endblock %} {% endblock %}

Loading…
Cancel
Save