@ -1,8 +1,7 @@
import os
from datetime import date , datetime
import os
import django_filters
from crispy_forms . bootstrap import ( Alert , FormActions , InlineCheckboxes ,
InlineRadios )
from crispy_forms . helper import FormHelper
@ -18,8 +17,8 @@ from django.db.models import Max
from django . forms import ModelForm , widgets
from django . forms . forms import Form
from django . utils . translation import ugettext_lazy as _
import django_filters
import sapl
from sapl . base . models import Autor
from sapl . comissoes . models import Comissao
from sapl . crispy_layout_mixin import ( SaplFormLayout , form_actions , to_column ,
@ -32,7 +31,9 @@ from sapl.protocoloadm.models import Protocolo
from sapl . settings import MAX_DOC_UPLOAD_SIZE
from sapl . utils import ( RANGE_ANOS , YES_NO_CHOICES ,
ChoiceWithoutValidationField , RangeWidgetOverride ,
autor_label , autor_modal , models_with_gr_for_model )
autor_label , autor_modal , models_with_gr_for_model ,
MateriaPesquisaOrderingFilter )
import sapl
from . models import ( AcompanhamentoMateria , Anexada , Autoria , DespachoInicial ,
DocumentoAcessorio , MateriaLegislativa , Numeracao ,
@ -444,6 +445,8 @@ class MateriaLegislativaFilterSet(django_filters.FilterSet):
label = u ' Ano da Matéria ' ,
choices = em_tramitacao )
o = MateriaPesquisaOrderingFilter ( )
class Meta :
model = MateriaLegislativa
fields = [ ' numero ' ,
@ -453,7 +456,7 @@ class MateriaLegislativaFilterSet(django_filters.FilterSet):
' data_apresentacao ' ,
' data_publicacao ' ,
' autoria__autor__tipo ' ,
# 'autoria__autor__partido',
# FIXME 'autoria__autor__partido',
' relatoria__parlamentar_id ' ,
' local_origem_externa ' ,
' tramitacao__unidade_tramitacao_destino ' ,
@ -461,29 +464,6 @@ class MateriaLegislativaFilterSet(django_filters.FilterSet):
' em_tramitacao ' ,
]
order_by = (
( ' ' , ' Selecione ' ) ,
( ' dataC ' , ' Data, Tipo, Ano, Numero - Ordem Crescente ' ) ,
( ' dataD ' , ' Data, Tipo, Ano, Numero - Ordem Decrescente ' ) ,
( ' tipoC ' , ' Tipo, Ano, Numero, Data - Ordem Crescente ' ) ,
( ' tipoD ' , ' Tipo, Ano, Numero, Data - Ordem Decrescente ' )
)
order_by_mapping = {
' ' : [ ] ,
' dataC ' : [ ' data_apresentacao ' , ' tipo__sigla ' , ' ano ' , ' numero ' ] ,
' dataD ' : [ ' -data_apresentacao ' , ' -tipo__sigla ' , ' -ano ' , ' -numero ' ] ,
' tipoC ' : [ ' tipo__sigla ' , ' ano ' , ' numero ' , ' data_apresentacao ' ] ,
' tipoD ' : [ ' -tipo__sigla ' , ' -ano ' , ' -numero ' , ' -data_apresentacao ' ] ,
}
def get_order_by ( self , order_value ) :
if order_value in self . order_by_mapping :
return self . order_by_mapping [ order_value ]
else :
return super ( MateriaLegislativaFilterSet ,
self ) . get_order_by ( order_value )
def __init__ ( self , * args , * * kwargs ) :
super ( MateriaLegislativaFilterSet , self ) . __init__ ( * args , * * kwargs )