Browse Source

Add filtros de autores por tipo

pull/1374/merge
LeandroRoberto 7 years ago
parent
commit
a567efe3eb
  1. 50
      sapl/api/forms.py

50
sapl/api/forms.py

@ -168,13 +168,13 @@ class AutoresPossiveisFilterSet(FilterSet):
if not hasattr(self, filter_for_model): if not hasattr(self, filter_for_model):
return qs return qs
return getattr(self, filter_for_model)(qs, data_relativa)
def filter_parlamentar(self, queryset, data_relativa):
# não leva em conta afastamentos
if not data_relativa: if not data_relativa:
data_relativa = timezone.now() data_relativa = timezone.now()
return getattr(self, filter_for_model)(qs, data_relativa).distinct()
def filter_parlamentar(self, queryset, data_relativa):
# não leva em conta afastamentos
legislatura_relativa = Legislatura.objects.filter( legislatura_relativa = Legislatura.objects.filter(
data_inicio__lte=data_relativa, data_inicio__lte=data_relativa,
data_fim__gte=data_relativa).first() data_fim__gte=data_relativa).first()
@ -188,26 +188,42 @@ class AutoresPossiveisFilterSet(FilterSet):
if legislatura_relativa.atual(): if legislatura_relativa.atual():
params['parlamentar_set__ativo'] = True params['parlamentar_set__ativo'] = True
qs = queryset.filter(**params).distinct() qs = queryset.filter(**params)
return qs return qs
def filter_frente(self, queryset, data_relativa):
# implementar regras específicas para frente
return queryset
def filter_comissao(self, queryset, data_relativa): def filter_comissao(self, queryset, data_relativa):
# implementar regras específicas para comissao return queryset.filter(
return queryset Q(comissao_set__data_extincao__isnull=True,
comissao_set__data_fim_comissao__isnull=True) |
Q(comissao_set__data_extincao__gte=data_relativa,
comissao_set__data_fim_comissao__isnull=True) |
Q(comissao_set__data_extincao__gte=data_relativa,
comissao_set__data_fim_comissao__isnull=True) |
Q(comissao_set__data_extincao__isnull=True,
comissao_set__data_fim_comissao__gte=data_relativa) |
Q(comissao_set__data_extincao__gte=data_relativa,
comissao_set__data_fim_comissao__gte=data_relativa),
comissao_set__data_criacao__lte=data_relativa)
def filter_orgao(self, queryset, data_relativa): def filter_frente(self, queryset, data_relativa):
# implementar regras específicas para orgao return queryset.filter(
return queryset Q(frente_set__data_extincao__isnull=True) |
Q(frente_set__data_extincao__gte=data_relativa),
frente_set__data_criacao__lte=data_relativa)
def filter_bancada(self, queryset, data_relativa): def filter_bancada(self, queryset, data_relativa):
# implementar regras específicas para bancada return queryset.filter(
return queryset Q(bancada_set__data_extincao__isnull=True) |
Q(bancada_set__data_extincao__gte=data_relativa),
bancada_set__data_criacao__lte=data_relativa)
def filter_bloco(self, queryset, data_relativa): def filter_bloco(self, queryset, data_relativa):
# implementar regras específicas para bloco return queryset.filter(
Q(bloco_set__data_extincao__isnull=True) |
Q(bloco_set__data_extincao__gte=data_relativa),
bloco_set__data_criacao__lte=data_relativa)
def filter_orgao(self, queryset, data_relativa):
# na implementação, não havia regras a implementar para orgao
return queryset return queryset

Loading…
Cancel
Save