Browse Source

Adiciona mais campos de pesquisa

pull/282/head
Eduardo Calil 9 years ago
parent
commit
e1eff41fc7
  1. 171
      materia/forms.py
  2. 2
      parlamentares/models.py
  3. 2
      templates/materia/materialegislativa_filter.html

171
materia/forms.py

@ -683,91 +683,93 @@ class MateriaLegislativaPesquisaForm(ModelForm):
class MateriaLegislativaPesquisaFields(FilterSet):
# autor = django_filters.ChoiceFilter(
# label='Autor',
# required=False,
# queryset=Autor.objects.all().order_by('tipo'),
# empty_label='Selecione',
# )
# # relatores são os parlamentares ativos?
# relatoria__parlamentar__id = django_filters.ChoiceFilter(
# label='Relator',
# required=False,
# queryset=Parlamentar.objects.all().order_by('nome_parlamentar'),
# empty_label='Selecione',
# )
# tipo = django_filters.ChoiceFilter(
# label=_('Tipo de Matéria'),
# required=False,
# queryset=TipoMateriaLegislativa.objects.all(),
# empty_label='Selecione',
# )
# data_apresentacao = django_filters.DateFilter(
# label=u'Data de Apresentação',
# input_formats=['%d/%m/%Y'],
# required=False,
# widget=forms.DateInput(
# format='%d/%m/%Y',
# attrs={'class': 'dateinput'}))
# data_publicacao = django_filters.DateFilter(
# label=u'Data da Publicação',
# input_formats=['%d/%m/%Y'],
# required=False,
# widget=forms.DateInput(
# format='%d/%m/%Y',
# attrs={'class': 'dateinput'}))
numero = django_filters.CharFilter(required=False,
label=u'Número da Matéria')
numero_protocolo = django_filters.CharFilter(required=False,
label=u'Núm. Protocolo')
ano = django_filters.CharFilter(required=False,
label=u'Ano da Matéria')
ementa__icontains = django_filters.CharFilter(required=False,
label=u'Assunto')
# tramitacao__unidade_tramitacao_destino = django_filters.ChoiceFilter(
# label=_('Localização Atual'),
# required=False,
# queryset=UnidadeTramitacao.objects.all(),
# empty_label='Selecione',
# )
# tramitacao__status = django_filters.ChoiceFilter(
# label='Situação',
# required=False,
# queryset=StatusTramitacao.objects.all(),
# empty_label='Selecione',
# )
# em_tramitacao = django_filters.ChoiceFilter(required=False,
# label='Tramitando',
# choices=em_tramitacao(),
# widget=forms.Select(
# attrs={'class': 'selector'}))
# autoria__autor__tipo = django_filters.ChoiceFilter(
# label=_('Tipo Autor'),
# required=False,
# queryset=TipoAutor.objects.all(),
# empty_label='Selecione',
# )
# autoria__partido = django_filters.ChoiceFilter(
# label=_('Partido (Autor)'),
# required=False,
# queryset=Partido.objects.all(),
# empty_label='Selecione')
# local_origem_externa = django_filters.ChoiceFilter(
# label=_('Localização de Origem'),
# required=False,
# queryset=Origem.objects.all(),
# empty_label='Selecione')
tipo = django_filters.ModelChoiceFilter(
label=_('Tipo de Matéria'),
required=False,
queryset=TipoMateriaLegislativa.objects.all(),
empty_label='Selecione',
)
data_apresentacao = django_filters.DateFilter(
label=u'Data de Apresentação',
input_formats=['%d/%m/%Y'],
required=False,
widget=forms.DateInput(
format='%d/%m/%Y',
attrs={'class': 'dateinput'}))
data_publicacao = django_filters.DateFilter(
label=u'Data da Publicação',
input_formats=['%d/%m/%Y'],
required=False,
widget=forms.DateInput(
format='%d/%m/%Y',
attrs={'class': 'dateinput'}))
autoria__autor = django_filters.ModelChoiceFilter(
label='Autor',
required=False,
queryset=Autor.objects.all().order_by('tipo'),
empty_label='Selecione',
)
autoria__autor__tipo = django_filters.ModelChoiceFilter(
label=_('Tipo Autor'),
required=False,
queryset=TipoAutor.objects.all(),
empty_label='Selecione',
)
autoria__partido = django_filters.ModelChoiceFilter(
label=_('Partido (Autor)'),
required=False,
queryset=Partido.objects.all(),
empty_label='Selecione')
# # relatores são os parlamentares ativos?
relatoria__parlamentar__id = django_filters.ModelChoiceFilter(
label='Relator',
required=False,
queryset=Parlamentar.objects.all().order_by('nome_parlamentar'),
empty_label='Selecione',
)
local_origem_externa = django_filters.ModelChoiceFilter(
label=_('Localização de Origem'),
required=False,
queryset=Origem.objects.all(),
empty_label='Selecione')
tramitacao__unidade_tramitacao_destino = django_filters.ModelChoiceFilter(
label=_('Localização Atual'),
required=False,
queryset=UnidadeTramitacao.objects.all(),
empty_label='Selecione',
)
tramitacao__status = django_filters.ModelChoiceFilter(
label='Situação',
required=False,
queryset=StatusTramitacao.objects.all(),
empty_label='Selecione',
)
em_tramitacao = django_filters.ChoiceFilter(required=False,
label='Tramitando',
choices=em_tramitacao(),
widget=forms.Select(
attrs={'class': 'selector'}))
ementa = django_filters.CharFilter(required=False,
label=u'Assunto',
lookup_expr='icontains')
class Meta:
models = MateriaLegislativa
@ -777,7 +779,7 @@ class MateriaLegislativaPesquisaFields(FilterSet):
'data_apresentacao',
'data_publicacao',
'em_tramitacao',
'ementa__icontains',
'ementa',
'autoria__autor__id',
'relatoria__parlamentar__id',
'tramitacao__unidade_tramitacao_destino',
@ -785,3 +787,12 @@ class MateriaLegislativaPesquisaFields(FilterSet):
'autoria__autor__tipo',
'autoria__partido',
'local_origem_externa']
def my_custom_filter(queryset, value):
materia = MateriaLegislativa.objects.raw(
'SELECT DISTINCT materia_id, \
max(data_encaminhamento) as data_encaminhamento \
FROM materia_tramitacao \
GROUP BY materia_id \
ORDER BY materia_id')
return queryset.all()

2
parlamentares/models.py

@ -238,8 +238,6 @@ class Parlamentar(models.Model):
biografia = models.TextField(
blank=True, verbose_name=_('Biografia'))
# XXX Esse atribuito foi colocado aqui para não atrapalhar a migração
unidade_deliberativa = models.BooleanField(
default=False, verbose_name=_('Unidade Deliberativa'))
fotografia = models.ImageField(
blank=True,
null=True,

2
templates/materia/materialegislativa_filter.html

@ -9,7 +9,7 @@
{{ filter.form.as_p }}
<input type="submit" />
</form>
<p></p>
<table class="table table-striped table-bordered">
<thead class="thead-default">
<tr><td><h3>Resultados</h3></td></tr>

Loading…
Cancel
Save