From 56c33cd9dd5f60ad9c4f50d98814f019234aa626 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Fri, 8 Apr 2016 16:30:17 -0300 Subject: [PATCH] =?UTF-8?q?Refatora=20ordena=C3=A7=C3=A3o=20da=20pesquisa?= =?UTF-8?q?=20de=20materia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- materia/forms.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/materia/forms.py b/materia/forms.py index 987dcaa51..504dc1363 100644 --- a/materia/forms.py +++ b/materia/forms.py @@ -647,19 +647,20 @@ class MateriaLegislativaFilterSet(django_filters.FilterSet): ('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 == '': - return [] - elif order_value == 'dataC': - return ['data_apresentacao', 'tipo__sigla', 'ano', 'numero'] - elif order_value == 'dataD': - return ['-data_apresentacao', '-tipo__sigla', '-ano', '-numero'] - elif order_value == 'tipoC': - return ['tipo__sigla', 'ano', 'numero', 'data_apresentacao'] + if order_value in self.order_by_mapping: + return self.order_by_mapping[order_value] else: - return ['-tipo__sigla', '-ano', '-numero', '-data_apresentacao'] - return super(MateriaLegislativaFilterSet, - self).get_order_by(order_value) + return super(MateriaLegislativaFilterSet, + self).get_order_by(order_value) def __init__(self, *args, **kwargs): super(MateriaLegislativaFilterSet, self).__init__(*args, **kwargs)