diff --git a/materia/forms.py b/materia/forms.py index a5ae348b2..6f6587c7e 100644 --- a/materia/forms.py +++ b/materia/forms.py @@ -1,7 +1,10 @@ +import django_filters from crispy_forms.helper import FormHelper from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Submit from django import forms from django.core.exceptions import ObjectDoesNotExist, ValidationError +from django.db import models +from django.db.models import Max from django.forms import ModelForm from django.utils.translation import ugettext_lazy as _ @@ -10,14 +13,14 @@ import sapl from crispy_layout_mixin import form_actions from norma.models import LegislacaoCitada, TipoNormaJuridica from sapl.settings import MAX_DOC_UPLOAD_SIZE +from sapl.utils import RANGE_ANOS from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, DespachoInicial, DocumentoAcessorio, MateriaLegislativa, - Numeracao, Proposicao, Relatoria, StatusTramitacao, - TipoMateriaLegislativa, Tramitacao, UnidadeTramitacao) + Numeracao, Proposicao, Relatoria, TipoMateriaLegislativa, + Tramitacao) -ORDENACAO_MATERIAIS = [(1, 'Crescente'), - (2, 'Decrescente')] +ANO_CHOICES = [('', '---------')] + RANGE_ANOS def em_tramitacao(): @@ -140,13 +143,13 @@ class DocumentoAcessorioForm(ModelForm): [('tipo', 4), ('nome', 4), ('data', 4)]) row2 = crispy_layout_mixin.to_row( - [('autor', 0), - (Button('pesquisar', - 'Pesquisar Autor', - css_class='btn btn-primary btn-sm'), 2), - (Button('limpar', - 'Limpar Autor', - css_class='btn btn-primary btn-sm'), 10)]) + [('autor', 0), + (Button('pesquisar', + 'Pesquisar Autor', + css_class='btn btn-primary btn-sm'), 2), + (Button('limpar', + 'Limpar Autor', + css_class='btn btn-primary btn-sm'), 10)]) row3 = crispy_layout_mixin.to_row( [('ementa', 12)]) @@ -192,7 +195,7 @@ class TramitacaoForm(ModelForm): label='Tramitando', choices=[(True, 'Sim'), (False, 'Não')], widget=forms.Select( - attrs={'class': 'selector'})) + attrs={'class': 'selector'})) class Meta: model = Tramitacao @@ -455,75 +458,90 @@ class AutoriaForm(ModelForm): *args, **kwargs) -class MateriaLegislativaPesquisaForm(ModelForm): +class RangeWidgetOverride(forms.MultiWidget): - autor = forms.CharField(widget=forms.HiddenInput(), required=False) + def __init__(self, attrs=None): + widgets = (forms.DateInput(format='%d/%m/%Y', + attrs={'class': 'dateinput', + 'placeholder': 'Inicial'}), + forms.DateInput(format='%d/%m/%Y', + attrs={'class': 'dateinput', + 'placeholder': 'Final'})) + super(RangeWidgetOverride, self).__init__(widgets, attrs) - localizacao = forms.ModelChoiceField( - label='Localização Atual', - required=False, - queryset=UnidadeTramitacao.objects.all(), - empty_label='Selecione', - ) + def decompress(self, value): + if value: + return [value.start, value.stop] + return [None, None] - situacao = forms.ModelChoiceField( - label='Situação', - required=False, - queryset=StatusTramitacao.objects.all(), - empty_label='Selecione', - ) + def format_output(self, rendered_widgets): + return ''.join(rendered_widgets) + + +class MateriaLegislativaFilterSet(django_filters.FilterSet): + + filter_overrides = {models.DateField: { + 'filter_class': django_filters.DateFromToRangeFilter, + 'extra': lambda f: { + 'label': '%s (%s)' % (f.verbose_name, _('Inicial - Final')), + 'widget': RangeWidgetOverride} + }} - em_tramitacao = forms.ChoiceField(required=False, - label='Tramitando', - choices=em_tramitacao(), - widget=forms.Select( - attrs={'class': 'selector'})) - - publicacao_inicial = forms.DateField(label=u'Data Publicação Inicial', - input_formats=['%d/%m/%Y'], - required=False, - widget=forms.DateInput( - format='%d/%m/%Y', - attrs={'class': 'dateinput'})) - - publicacao_final = forms.DateField(label=u'Data Publicação Final', - input_formats=['%d/%m/%Y'], - required=False, - widget=forms.DateInput( - format='%d/%m/%Y', - attrs={'class': 'dateinput'})) - - apresentacao_inicial = forms.DateField(label=u'Data Apresentação Inicial', - input_formats=['%d/%m/%Y'], - required=False, - widget=forms.DateInput( - format='%d/%m/%Y', - attrs={'class': 'dateinput'})) - - apresentacao_final = forms.DateField(label=u'Data Apresentação Final', - input_formats=['%d/%m/%Y'], - required=False, - widget=forms.DateInput( - format='%d/%m/%Y', - attrs={'class': 'dateinput'})) + ano = django_filters.ChoiceFilter(required=False, + label=u'Ano da Matéria', + choices=ANO_CHOICES) + + autoria__autor = django_filters.CharFilter(widget=forms.HiddenInput()) + + ementa = django_filters.CharFilter(lookup_expr='icontains') class Meta: model = MateriaLegislativa - fields = ['tipo', - 'numero', - 'ano', + fields = ['numero', 'numero_protocolo', - 'apresentacao_inicial', - 'apresentacao_final', - 'publicacao_inicial', - 'publicacao_final', - 'autor', + 'ano', + 'tipo', + 'data_apresentacao', + 'data_publicacao', + 'autoria__autor__tipo', + 'autoria__partido', + 'relatoria__parlamentar_id', 'local_origem_externa', - 'localizacao', + 'tramitacao__unidade_tramitacao_destino', + 'tramitacao__status', 'em_tramitacao', - 'situacao'] + ] + + 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) + + self.filters['tipo'].label = 'Tipo de Matéria' + self.filters['autoria__autor__tipo'].label = 'Tipo de Autor' + self.filters['autoria__partido'].label = 'Partido do Autor' + self.filters['relatoria__parlamentar_id'].label = 'Relatoria' row1 = crispy_layout_mixin.to_row( [('tipo', 12)]) @@ -532,34 +550,73 @@ class MateriaLegislativaPesquisaForm(ModelForm): ('ano', 4), ('numero_protocolo', 4)]) row3 = crispy_layout_mixin.to_row( - [('apresentacao_inicial', 6), - ('apresentacao_final', 6)]) + [('data_apresentacao', 6), + ('data_publicacao', 6)]) row4 = crispy_layout_mixin.to_row( - [('publicacao_inicial', 6), - ('publicacao_final', 6)]) + [('autoria__autor', 0), + (Button('pesquisar', + 'Pesquisar Autor', + css_class='btn btn-primary btn-sm'), 2), + (Button('limpar', + 'limpar Autor', + css_class='btn btn-primary btn-sm'), 10)]) row5 = crispy_layout_mixin.to_row( - [('autor', 0), - (Button('pesquisar', - 'Pesquisar Autor', - css_class='btn btn-primary btn-sm'), 2), - (Button('limpar', - 'limpar Autor', - css_class='btn btn-primary btn-sm'), 10)]) + [('autoria__autor__tipo', 6), + ('autoria__partido', 6)]) row6 = crispy_layout_mixin.to_row( - [('local_origem_externa', 6), - ('localizacao', 6)]) + [('relatoria__parlamentar_id', 6), + ('local_origem_externa', 6)]) row7 = crispy_layout_mixin.to_row( + [('tramitacao__unidade_tramitacao_destino', 6), + ('tramitacao__status', 6)]) + row8 = crispy_layout_mixin.to_row( [('em_tramitacao', 6), - ('situacao', 6)]) + ('o', 6)]) + row9 = crispy_layout_mixin.to_row( + [('ementa', 12)]) - self.helper = FormHelper() - self.helper.layout = Layout( + self.form.helper = FormHelper() + self.form.helper.form_method = 'GET' + self.form.helper.layout = Layout( Fieldset(_('Pesquisa Básica'), - row1, row2, row3, row4, + row1, row2, row3, HTML(sapl.utils.autor_label), HTML(sapl.utils.autor_modal), - row5, row6, row7, + row4, row5, row6, row7, row8, row9, form_actions(save_label='Pesquisar')) ) - super(MateriaLegislativaPesquisaForm, self).__init__( - *args, **kwargs) + + +def pega_ultima_tramitacao(): + ultimas_tramitacoes = Tramitacao.objects.values( + 'materia_id').annotate(data_encaminhamento=Max( + 'data_encaminhamento'), + id=Max('id')).values_list('id') + + lista = [item for sublist in ultimas_tramitacoes for item in sublist] + + return lista + + +def filtra_tramitacao_status(status): + lista = pega_ultima_tramitacao() + return Tramitacao.objects.filter( + id__in=lista, + status=status).distinct().values_list('materia_id', flat=True) + + +def filtra_tramitacao_destino(destino): + lista = pega_ultima_tramitacao() + return Tramitacao.objects.filter( + id__in=lista, + unidade_tramitacao_destino=destino).distinct().values_list( + 'materia_id', flat=True) + + +def filtra_tramitacao_destino_and_status(status, destino): + lista = pega_ultima_tramitacao() + return Tramitacao.objects.filter( + id__in=lista, + status=status, + unidade_tramitacao_destino=destino).distinct().values_list( + 'materia_id', flat=True) diff --git a/materia/test_materia_urls.py b/materia/test_materia_urls.py index 9814612a7..492adde94 100644 --- a/materia/test_materia_urls.py +++ b/materia/test_materia_urls.py @@ -3,9 +3,6 @@ from django.core.urlresolvers import reverse @pytest.mark.parametrize("test_input,kwargs,expected", [ - ('materia:pesquisar_materia_list', - {}, - '/materia/pesquisar-materia-list'), ('materia:relatoria_edit', {'pk': '11', 'id': '99'}, '/materia/11/relatoria/99/edit'), diff --git a/materia/urls.py b/materia/urls.py index 7a7bce314..d39828694 100644 --- a/materia/urls.py +++ b/materia/urls.py @@ -11,8 +11,7 @@ from materia.views import (AcompanhamentoConfirmarView, MateriaLegislativaCrud, MateriaLegislativaPesquisaView, MateriaTaView, NumeracaoEditView, NumeracaoView, OrgaoCrud, - OrigemCrud, PesquisaMateriaListView, - ProposicaoEditView, ProposicaoListView, + OrigemCrud, ProposicaoEditView, ProposicaoListView, ProposicaoTaView, ProposicaoView, RegimeTramitacaoCrud, RelatoriaEditView, RelatoriaView, StatusTramitacaoCrud, TipoAutorCrud, @@ -93,8 +92,6 @@ urlpatterns = [ ProposicaoEditView.as_view(), name='editar_proposicao'), url(r'^materia/pesquisar-materia$', MateriaLegislativaPesquisaView.as_view(), name='pesquisar_materia'), - url(r'^materia/pesquisar-materia-list$', - PesquisaMateriaListView.as_view(), name='pesquisar_materia_list'), url(r'^materia/(?P\d+)/acompanhar-materia/$', AcompanhamentoMateriaView.as_view(), name='acompanhar_materia'), url(r'^materia/(?P\d+)/acompanhar-confirmar$', diff --git a/materia/views.py b/materia/views.py index afe7ede2c..97efe04a7 100644 --- a/materia/views.py +++ b/materia/views.py @@ -12,6 +12,7 @@ from django.shortcuts import redirect from django.template import Context, loader from django.utils.translation import ugettext_lazy as _ from django.views.generic import CreateView, FormView, ListView, TemplateView +from django_filters.views import FilterView import crud.base from base.models import CasaLegislativa @@ -25,8 +26,10 @@ from sapl.utils import get_base_url from .forms import (AcompanhamentoMateriaForm, AutoriaForm, DespachoInicialForm, DocumentoAcessorioForm, LegislacaoCitadaForm, MateriaAnexadaForm, - MateriaLegislativaPesquisaForm, NumeracaoForm, - ProposicaoForm, RelatoriaForm, TramitacaoForm) + MateriaLegislativaFilterSet, NumeracaoForm, ProposicaoForm, + RelatoriaForm, TramitacaoForm, filtra_tramitacao_destino, + filtra_tramitacao_destino_and_status, + filtra_tramitacao_status) from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, DespachoInicial, DocumentoAcessorio, MateriaLegislativa, Numeracao, Orgao, Origem, Proposicao, RegimeTramitacao, @@ -219,7 +222,7 @@ class MateriaAnexadaEditView(FormView): def get_success_url(self): pk = self.kwargs['pk'] - return reverse('materia:materia_anexada', kwargs={'pk': pk}) + return reverse('materia_anexada', kwargs={'pk': pk}) class DespachoInicialView(CreateView): @@ -1186,118 +1189,78 @@ class ProposicaoListView(ListView): return context -class MateriaLegislativaPesquisaView(FormView): - template_name = 'materia/pesquisa_materia.html' - - def get_success_url(self): - return reverse('materia:pesquisar_materia') - - def get(self, request, *args, **kwargs): - form = MateriaLegislativaPesquisaForm() - return self.render_to_response({'form': form}) - - def post(self, request, *args, **kwargs): - kwargs = {} - form = MateriaLegislativaPesquisaForm(request.POST) +class MateriaLegislativaPesquisaView(FilterView): + model = MateriaLegislativa + filterset_class = MateriaLegislativaFilterSet + paginate_by = 10 - if form.data['tipo']: - kwargs['tipo'] = form.data['tipo'] + def get_filterset_kwargs(self, filterset_class): + super(MateriaLegislativaPesquisaView, + self).get_filterset_kwargs(filterset_class) - if form.data['numero']: - kwargs['numero'] = form.data['numero'] + kwargs = {'data': self.request.GET or None} - if form.data['ano']: - kwargs['ano'] = form.data['ano'] + status_tramitacao = self.request.GET.get('tramitacao__status') + unidade_destino = self.request.GET.get( + 'tramitacao__unidade_tramitacao_destino') - if form.data['numero_protocolo']: - kwargs['numero_protocolo'] = form.data['numero_protocolo'] + qs = self.get_queryset() - if (form.data['apresentacao_inicial'] and - form.data['apresentacao_final']): - kwargs['apresentacao_inicial'] = form.data['apresentacao_inicial'] - kwargs['apresentacao_final'] = form.data['apresentacao_final'] + if status_tramitacao and unidade_destino: + lista = filtra_tramitacao_destino_and_status(status_tramitacao, + unidade_destino) + qs = qs.filter(id__in=lista).distinct() - if (form.data['publicacao_inicial'] and - form.data['publicacao_final']): - kwargs['publicacao_inicial'] = form.data['publicacao_inicial'] - kwargs['publicacao_final'] = form.data['publicacao_final'] + elif status_tramitacao: + lista = filtra_tramitacao_status(status_tramitacao) + qs = qs.filter(id__in=lista).distinct() - if form.data['local_origem_externa']: - kwargs['local_origem_externa'] = form.data['local_origem_externa'] + elif unidade_destino: + lista = filtra_tramitacao_destino(unidade_destino) + qs = qs.filter(id__in=lista).distinct() - if form.data['autor']: - kwargs['autor'] = form.data['autor'] + kwargs.update({ + 'queryset': qs, + }) + return kwargs - if form.data['localizacao']: - kwargs['localizacao'] = form.data['localizacao'] + def get_context_data(self, **kwargs): + context = super(MateriaLegislativaPesquisaView, + self).get_context_data(**kwargs) - if form.data['em_tramitacao']: - kwargs['em_tramitacao'] = form.data['em_tramitacao'] + paginator = context['paginator'] + page_obj = context['page_obj'] - if form.data['situacao']: - kwargs['situacao'] = form.data['situacao'] + context['page_range'] = make_pagination( + page_obj.number, paginator.num_pages) - request.session['kwargs'] = kwargs + return context - return redirect('materia:pesquisar_materia_list') + def get(self, request, *args, **kwargs): + super(MateriaLegislativaPesquisaView, self).get(request) + + # Se a pesquisa estiver quebrando com a paginação + # Olhe esta função abaixo + # Provavelmente você criou um novo campo no Form/FilterSet + # Então a ordem da URL está diferente + data = self.filterset.data + if (data and data.get('tipo') is not None): + url = "&"+str(self.request.environ['QUERY_STRING']) + if url.startswith("&page"): + ponto_comeco = url.find('tipo=') - 1 + url = url[ponto_comeco:] + else: + url = '' + self.filterset.form.fields['o'].label = _('Ordenação') -class PesquisaMateriaListView(ListView): - template_name = 'materia/pesquisa_materia_list.html' - context_object_name = 'materias' - model = MateriaLegislativa - paginate_by = 10 + context = self.get_context_data(filter=self.filterset, + object_list=self.object_list, + filter_url=url, + numero_res=len(self.object_list) + ) - def get_queryset(self): - kwargs = self.request.session['kwargs'] - - materias = MateriaLegislativa.objects.all().order_by( - '-numero', '-ano') - - if 'apresentacao_inicial' in kwargs: - inicial = datetime.strptime( - kwargs['apresentacao_inicial'], - '%d/%m/%Y').strftime('%Y-%m-%d') - final = datetime.strptime( - kwargs['apresentacao_final'], - '%d/%m/%Y').strftime('%Y-%m-%d') - materias = materias.filter( - data_apresentacao__range=(inicial, final)) - - if 'publicacao_inicial' in kwargs: - inicial = datetime.strptime( - kwargs['publicacao_inicial'], - '%d/%m/%Y').strftime('%Y-%m-%d') - final = datetime.strptime( - kwargs['publicacao_final'], - '%d/%m/%Y').strftime('%Y-%m-%d') - materias = materias.filter( - data_publicacao__range=(inicial, final)) - - if 'tipo' in kwargs: - materias = materias.filter(tipo_id=kwargs['tipo']) - - if 'numero' in kwargs: - materias = materias.filter(numero=kwargs['numero']) - - if 'ano' in kwargs: - materias = materias.filter(ano=kwargs['ano']) - - if 'numero_protocolo' in kwargs: - materias = materias.filter(numero=kwargs['numero_protocolo']) - - if 'em_tramitacao' in kwargs: - materias = materias.filter(em_tramitacao=kwargs['em_tramitacao']) - - if 'local_origem_externa' in kwargs: - materias = materias.filter( - local_origem_externa=kwargs['local_origem_externa']) - - # autor - # localizao atual - # situacao - - return materias + return self.render_to_response(context) class ProposicaoView(CreateView): diff --git a/parlamentares/models.py b/parlamentares/models.py index 0fb9f54ad..6bca49e95 100644 --- a/parlamentares/models.py +++ b/parlamentares/models.py @@ -239,8 +239,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, diff --git a/parlamentares/test_parlamentares_urls.py b/parlamentares/test_parlamentares_urls.py deleted file mode 100644 index c72c8c0be..000000000 --- a/parlamentares/test_parlamentares_urls.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.core.urlresolvers import reverse - - -def test_urls_materia(): - st = reverse('materia:pesquisar_materia_list') - assert st == '/materia/pesquisar-materia-list' diff --git a/requirements/requirements.txt b/requirements/requirements.txt index dcb6a9fcb..10d6300cd 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -7,6 +7,7 @@ django-compressor==2.0 django-crispy-forms==1.6.0 python-decouple==3.0 django-extra-views==0.7.1 +django-filter==0.13.0 django-model-utils==2.4 django-sass-processor==0.3.4 django==1.9.5 diff --git a/sapl/settings.py b/sapl/settings.py index e0d02f524..975b809e4 100644 --- a/sapl/settings.py +++ b/sapl/settings.py @@ -122,8 +122,8 @@ EMAIL_HOST_USER = config('EMAIL_HOST_USER', cast=str) EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD', cast=str) EMAIL_PORT = config('EMAIL_PORT', cast=int) -MAX_DOC_UPLOAD_SIZE = 5*1024*1024 # 5MB -MAX_IMAGE_UPLOAD_SIZE = 2*1024*1024 # 2MB +MAX_DOC_UPLOAD_SIZE = 5 * 1024 * 1024 # 5MB +MAX_IMAGE_UPLOAD_SIZE = 2 * 1024 * 1024 # 2MB # Internationalization # https://docs.djangoproject.com/en/1.8/topics/i18n/ @@ -187,3 +187,6 @@ SASS_PROCESSOR_INCLUDE_DIRS = (BOWER_COMPONENTS_ROOT.child( # hack to suppress many annoying warnings from crispy_forms # see sapl.temp_suppress_crispy_form_warnings LOGGING = SUPRESS_CRISPY_FORM_WARNINGS_LOGGING + +# suprime texto de ajuda default do django-filter +FILTERS_HELP_TEXT_FILTER = False diff --git a/static/js/app.js b/static/js/app.js index e29834ae7..a5af75510 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -105,9 +105,17 @@ function autorModal() { id = res.val(); nome = res.text(); - $("#id_autor").val(id); $("#nome_autor").text(nome); + // MateriaLegislativa pesquisa Autor via a tabela Autoria + if ($('#id_autoria__autor').length) { + $('#id_autoria__autor').val(id); + } + // Protocolo pesquisa a própria tabela de Autor + if ($('#id_autor').length) { + $("#id_autor").val(id); + } + dialog.dialog( "close" ); }); }); diff --git a/templates/materia/materialegislativa_filter.html b/templates/materia/materialegislativa_filter.html new file mode 100644 index 000000000..bb3f187b8 --- /dev/null +++ b/templates/materia/materialegislativa_filter.html @@ -0,0 +1,48 @@ +{% extends "materia/materialegislativa_detail.html" %} +{% load i18n %} +{% load crispy_forms_tags %} +{% block actions %}{% endblock %} + +{% block sections_nav %} {% endblock %} + +{% block detail_content %} +

Pesquisar Matéria

+

+ + + {% crispy filter.form %} + +

+ + + + + {% if page_obj|length %} + {% if numero_res > 1 %} +

Pesquisa concluída com sucesso! Foram encontradas {{numero_res}} matérias.

+ {% elif numero_res == 1 %} +

Pesquisa concluída com sucesso! Foi encontrada {{numero_res}} matéria.

+ {% endif %} + + {% for m in page_obj %} + + + + {% endfor %} + {% else %} + + + {% endif %} + +

Resultados

+ {{m.tipo.sigla}} {{m.numero}}/{{m.ano}} - {{m.tipo}}
+ {{ m.ementa|safe }}
+ Localização Atual: {{m.tramitacao_set.last.unidade_tramitacao_destino|default_if_none:"Não Informada"}}
+

+
+

Nenhuma matéria encontrada com essas especificações

+
+ +{% include "paginacao.html" %} + +{% endblock detail_content %} \ No newline at end of file diff --git a/templates/materia/pesquisa_materia.html b/templates/materia/pesquisa_materia.html deleted file mode 100644 index 56f5cfa55..000000000 --- a/templates/materia/pesquisa_materia.html +++ /dev/null @@ -1,8 +0,0 @@ -{% extends "materia/materialegislativa_detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %}{% endblock %} -{% block sections_nav %}{% endblock %} -{% block detail_content %} - {% crispy form %} -{% endblock %} diff --git a/templates/materia/pesquisa_materia_list.html b/templates/materia/pesquisa_materia_list.html deleted file mode 100644 index 83a17712a..000000000 --- a/templates/materia/pesquisa_materia_list.html +++ /dev/null @@ -1,26 +0,0 @@ -{% extends "materia/materialegislativa_detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% block actions %}{% endblock %} -{% block sections_nav %} {% endblock %} -{% block detail_content %} -{% if materias %} - - - - - {% for m in materias %} - - - {% endfor %} -

Resultados

- {{m.tipo.sigla}} {{m.numero}}/{{m.ano}} - {{m.tipo}}
- {{ m.ementa|safe }}
- Localização Atual: {{m.tramitacao_set.last.unidade_tramitacao_destino|default_if_none:"Não Informada"}}
-

-
-{% include "paginacao.html" %} -{% else %} -

Nenhum Registro recuperado

-{% endif %} -{% endblock detail_content %} diff --git a/templates/materia/proposicao/proposicao_list.html b/templates/materia/proposicao/proposicao_list.html index afbad4ade..566dc8566 100644 --- a/templates/materia/proposicao/proposicao_list.html +++ b/templates/materia/proposicao/proposicao_list.html @@ -3,16 +3,16 @@ {% load crispy_forms_tags %} {% block actions %}{% endblock %} - +{% endblock %} {% block detail_content %} -
+

Proposições

+ -

Proposições

+
diff --git a/templates/paginacao.html b/templates/paginacao.html index 1092432ac..7bb7db04b 100644 --- a/templates/paginacao.html +++ b/templates/paginacao.html @@ -3,7 +3,7 @@