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): 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, numero = django_filters.CharFilter(required=False,
label=u'Número da Matéria') label=u'Número da Matéria')
numero_protocolo = django_filters.CharFilter(required=False, numero_protocolo = django_filters.CharFilter(required=False,
label=u'Núm. Protocolo') label=u'Núm. Protocolo')
ano = django_filters.CharFilter(required=False, ano = django_filters.CharFilter(required=False,
label=u'Ano da Matéria') label=u'Ano da Matéria')
ementa__icontains = django_filters.CharFilter(required=False,
label=u'Assunto') tipo = django_filters.ModelChoiceFilter(
label=_('Tipo de Matéria'),
# tramitacao__unidade_tramitacao_destino = django_filters.ChoiceFilter( required=False,
# label=_('Localização Atual'), queryset=TipoMateriaLegislativa.objects.all(),
# required=False, empty_label='Selecione',
# queryset=UnidadeTramitacao.objects.all(), )
# empty_label='Selecione',
# ) data_apresentacao = django_filters.DateFilter(
label=u'Data de Apresentação',
# tramitacao__status = django_filters.ChoiceFilter( input_formats=['%d/%m/%Y'],
# label='Situação', required=False,
# required=False, widget=forms.DateInput(
# queryset=StatusTramitacao.objects.all(), format='%d/%m/%Y',
# empty_label='Selecione', attrs={'class': 'dateinput'}))
# )
data_publicacao = django_filters.DateFilter(
# em_tramitacao = django_filters.ChoiceFilter(required=False, label=u'Data da Publicação',
# label='Tramitando', input_formats=['%d/%m/%Y'],
# choices=em_tramitacao(), required=False,
# widget=forms.Select( widget=forms.DateInput(
# attrs={'class': 'selector'})) format='%d/%m/%Y',
attrs={'class': 'dateinput'}))
# autoria__autor__tipo = django_filters.ChoiceFilter(
# label=_('Tipo Autor'), autoria__autor = django_filters.ModelChoiceFilter(
# required=False, label='Autor',
# queryset=TipoAutor.objects.all(), required=False,
# empty_label='Selecione', queryset=Autor.objects.all().order_by('tipo'),
# ) empty_label='Selecione',
)
# autoria__partido = django_filters.ChoiceFilter(
# label=_('Partido (Autor)'), autoria__autor__tipo = django_filters.ModelChoiceFilter(
# required=False, label=_('Tipo Autor'),
# queryset=Partido.objects.all(), required=False,
# empty_label='Selecione') queryset=TipoAutor.objects.all(),
empty_label='Selecione',
# local_origem_externa = django_filters.ChoiceFilter( )
# label=_('Localização de Origem'),
# required=False, autoria__partido = django_filters.ModelChoiceFilter(
# queryset=Origem.objects.all(), label=_('Partido (Autor)'),
# empty_label='Selecione') 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: class Meta:
models = MateriaLegislativa models = MateriaLegislativa
@ -777,7 +779,7 @@ class MateriaLegislativaPesquisaFields(FilterSet):
'data_apresentacao', 'data_apresentacao',
'data_publicacao', 'data_publicacao',
'em_tramitacao', 'em_tramitacao',
'ementa__icontains', 'ementa',
'autoria__autor__id', 'autoria__autor__id',
'relatoria__parlamentar__id', 'relatoria__parlamentar__id',
'tramitacao__unidade_tramitacao_destino', 'tramitacao__unidade_tramitacao_destino',
@ -785,3 +787,12 @@ class MateriaLegislativaPesquisaFields(FilterSet):
'autoria__autor__tipo', 'autoria__autor__tipo',
'autoria__partido', 'autoria__partido',
'local_origem_externa'] '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( biografia = models.TextField(
blank=True, verbose_name=_('Biografia')) blank=True, verbose_name=_('Biografia'))
# XXX Esse atribuito foi colocado aqui para não atrapalhar a migração # 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( fotografia = models.ImageField(
blank=True, blank=True,
null=True, null=True,

2
templates/materia/materialegislativa_filter.html

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

Loading…
Cancel
Save