From c9353205db7341f68c8397ea803363d0774760d2 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Tue, 8 Nov 2016 10:10:22 -0200 Subject: [PATCH 01/10] init pesquisa norma --- sapl/norma/forms.py | 103 ++++--------- sapl/norma/urls.py | 12 +- sapl/norma/views.py | 140 ++++-------------- .../templates/norma/normajuridica_filter.html | 42 ++++++ 4 files changed, 100 insertions(+), 197 deletions(-) create mode 100644 sapl/templates/norma/normajuridica_filter.html diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index 4fd8c8579..a6d36b883 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -1,16 +1,18 @@ from datetime import datetime +import django_filters from crispy_forms.helper import FormHelper from crispy_forms.layout import Fieldset, Layout from django import forms from django.core.exceptions import ObjectDoesNotExist, ValidationError +from django.db import models from django.forms import ModelForm, widgets from django.utils.translation import ugettext_lazy as _ from sapl.crispy_layout_mixin import form_actions, to_row from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa from sapl.settings import MAX_DOC_UPLOAD_SIZE -from sapl.utils import RANGE_ANOS +from sapl.utils import ANO_CHOICES, RANGE_ANOS, RangeWidgetOverride from .models import AssuntoNorma, NormaJuridica @@ -30,94 +32,41 @@ ORDENACAO_CHOICES = [('', '---------'), ('data,tipo,ano,numero', _('Data/Tipo/Ano/Número'))] -# TODO termos, pesquisa textual, assunto(M2M) -class NormaJuridicaPesquisaForm(ModelForm): - - periodo_inicial = forms.DateField(label=u'Período Inicial', - input_formats=['%d/%m/%Y'], - required=False, - widget=forms.DateInput( - format='%d/%m/%Y', - attrs={'class': 'dateinput'})) - - periodo_final = forms.DateField(label=u'Período Final', - input_formats=['%d/%m/%Y'], - required=False, - widget=forms.DateInput( - format='%d/%m/%Y', - attrs={'class': 'dateinput'})) - - publicacao_inicial = forms.DateField(label=u'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'Publicação Final', - input_formats=['%d/%m/%Y'], - required=False, - widget=forms.DateInput( - format='%d/%m/%Y', - attrs={'class': 'dateinput'})) - - ano = forms.ModelChoiceField( - label='Ano', - required=False, - queryset=NormaJuridica.objects.order_by('-ano').values_list( - 'ano', flat=True).distinct(), - empty_label='Selecione' - ) - - em_vigencia = forms.ChoiceField( - label='Em vigência?', - choices=YES_NO_CHOICES, - required=False) +class NormaFilterSet(django_filters.FilterSet): - ordenacao = forms.ChoiceField( - label='Ordenação', - choices=ORDENACAO_CHOICES, - required=False) + filter_overrides = {models.DateField: { + 'filter_class': django_filters.DateFromToRangeFilter, + 'extra': lambda f: { + 'label': '%s (%s)' % (f.verbose_name, _('Inicial - Final')), + 'widget': RangeWidgetOverride} + }} - numero = forms.IntegerField(required=False) + ano = django_filters.ChoiceFilter(required=False, + label=u'Ano', + choices=ANO_CHOICES) - assunto = forms.ModelChoiceField( - label='Assunto', - required=False, - queryset=AssuntoNorma.objects.all(), - empty_label='Selecione' - ) + ementa = django_filters.CharFilter(lookup_expr='icontains') class Meta: model = NormaJuridica - fields = ['tipo', - 'numero', - 'ano', - 'periodo_inicial', - 'periodo_final', - 'publicacao_inicial', - 'publicacao_final', - 'assunto'] + fields = ['tipo', 'numero', 'ano', 'data', + 'data_publicacao', 'ementa'] def __init__(self, *args, **kwargs): + super(NormaFilterSet, self).__init__(*args, **kwargs) row1 = to_row([('tipo', 12)]) - row2 = to_row([('numero', 6), ('ano', 6)]) - - row3 = to_row([('periodo_inicial', 6), ('periodo_final', 6)]) - - row4 = to_row([('publicacao_inicial', 6), ('publicacao_final', 6)]) - - row5 = to_row([('em_vigencia', 4), ('ordenacao', 4), ('assunto', 4)]) - - self.helper = FormHelper() - self.helper.layout = Layout( - Fieldset('Pesquisa Norma Juridica', - row1, row2, row3, row4, row5), - form_actions(save_label='Pesquisar') + row3 = to_row([('ementa', 12)]) + row4 = to_row([('data', 6), ('data_publicacao', 6)]) + + self.form.helper = FormHelper() + self.form.helper.form_method = 'GET' + self.form.helper.layout = Layout( + Fieldset(_('Pesquisa de Norma'), + row1, row2, row3, row4, + form_actions(save_label='Pesquisar')) ) - super(NormaJuridicaPesquisaForm, self).__init__(*args, **kwargs) class NormaJuridicaForm(ModelForm): diff --git a/sapl/norma/urls.py b/sapl/norma/urls.py index a8d8c59d7..541abf125 100644 --- a/sapl/norma/urls.py +++ b/sapl/norma/urls.py @@ -1,8 +1,7 @@ from django.conf.urls import include, url -from sapl.norma.views import (AssuntoNormaCrud, - NormaCrud, NormaPesquisaView, NormaTaView, - PesquisaNormaListView, TipoNormaCrud) +from sapl.norma.views import (AssuntoNormaCrud, NormaCrud, NormaPesquisaView, + TipoNormaCrud) from .apps import AppConfig @@ -17,8 +16,7 @@ urlpatterns = [ url(r'^sistema/norma/tipo/', include(TipoNormaCrud.get_urls())), url(r'^sistema/norma/assunto/', include(AssuntoNormaCrud.get_urls())), - url(r'^norma/pesquisa$', - NormaPesquisaView.as_view(), name='norma_pesquisa'), - url(r'^norma/pesquisa-resultado$', - PesquisaNormaListView.as_view(), name='list_pesquisa_norma'), + + url(r'^norma/pesquisar$', + NormaPesquisaView.as_view(), name='pesquisar_norma'), ] diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 1cddc0ca9..7737b95d0 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -11,9 +11,8 @@ from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, make_pagination) from sapl.norma.forms import NormaJuridicaForm -from .forms import NormaJuridicaPesquisaForm -from .models import (AssuntoNorma, NormaJuridica, - TipoNormaJuridica) +from .forms import NormaFilterSet +from .models import AssuntoNorma, NormaJuridica, TipoNormaJuridica # LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '') AssuntoNormaCrud = CrudAux.build(AssuntoNorma, 'assunto_norma_juridica', @@ -25,6 +24,31 @@ TipoNormaCrud = CrudAux.build( list_field_names=['sigla', 'descricao', 'equivalente_lexml']) +class NormaPesquisaView(FilterView): + model = NormaJuridica + filterset_class = NormaFilterSet + paginate_by = 10 + + def get_context_data(self, **kwargs): + context = super(NormaPesquisaView, self).get_context_data(**kwargs) + + context['title'] = _('Pesquisar Norma Jurídica') + + qr = self.request.GET.copy() + if 'page' in qr: + del qr['page'] + + paginator = context['paginator'] + page_obj = context['page_obj'] + + context['page_range'] = make_pagination( + page_obj.number, paginator.num_pages) + + context['filter_url'] = ('&' + qr.urlencode()) if len(qr) > 0 else '' + + return context + + class NormaTaView(IntegracaoTaView): model = NormaJuridica model_type_foreignkey = TipoNormaJuridica @@ -103,113 +127,3 @@ class NormaCrud(Crud): self.initial['ano_materia'] = norma.materia.ano self.initial['numero_materia'] = norma.materia.numero return self.initial.copy() - - -class NormaPesquisaView(FormView): - template_name = "norma/pesquisa.html" - success_url = "norma:norma_pesquisa" - form_class = NormaJuridicaPesquisaForm - - def post(self, request, *args, **kwargs): - form = NormaJuridicaPesquisaForm(request.POST) - - if form.data['tipo']: - kwargs['tipo'] = form.data['tipo'] - if form.data['numero']: - kwargs['numero'] = form.data['numero'] - if form.data['ano']: - kwargs['ano'] = form.data['ano'] - if form.data['periodo_inicial'] and form.data['periodo_final']: - kwargs['periodo_inicial'] = form.data['periodo_inicial'] - kwargs['periodo_final'] = form.data['periodo_final'] - if form.data['publicacao_inicial'] and form.data['publicacao_final']: - kwargs['publicacao_inicial'] = form.data['publicacao_inicial'] - kwargs['publicacao_final'] = form.data['publicacao_final'] - if form.data['ordenacao']: - kwargs['ordenacao'] = form.data['ordenacao'] - if form.data['em_vigencia']: - kwargs['em_vigencia'] = form.data['em_vigencia'] - if form.data['assunto']: - kwargs['assunto'] = form.data['assunto'] - - request.session['kwargs'] = kwargs - return redirect('sapl.norma:list_pesquisa_norma') - - -class PesquisaNormaListView(ListView): - template_name = 'norma/list_pesquisa.html' - model = NormaJuridica - paginate_by = 10 - - def get_queryset(self): - kwargs = self.request.session['kwargs'] - - if 'ordenacao' in kwargs: - ordenacao = kwargs.pop('ordenacao').split(',') - for o in ordenacao: - normas = NormaJuridica.objects.all().order_by(o) - else: - normas = NormaJuridica.objects.all() - - if 'em_vigencia' in kwargs: - del kwargs['em_vigencia'] - normas = normas.filter( - data_vigencia__lte=datetime.now().date()) - - if 'periodo_inicial' and 'publicacao_inicial' in kwargs: - periodo_inicial = datetime.strptime( - kwargs['periodo_inicial'], - '%d/%m/%Y').strftime('%Y-%m-%d') - periodo_final = datetime.strptime( - kwargs['periodo_final'], - '%d/%m/%Y').strftime('%Y-%m-%d') - publicacao_inicial = datetime.strptime( - kwargs['publicacao_inicial'], - '%d/%m/%Y').strftime('%Y-%m-%d') - publicacao_final = datetime.strptime( - kwargs['publicacao_final'], - '%d/%m/%Y').strftime('%Y-%m-%d') - - normas = normas.filter( - data__range=(periodo_inicial, periodo_final), - data_publicacao__range=(publicacao_inicial, publicacao_final)) - - if 'periodo_inicial' in kwargs: - inicial = datetime.strptime(kwargs['periodo_inicial'], - '%d/%m/%Y').strftime('%Y-%m-%d') - final = datetime.strptime(kwargs['periodo_inicial'], - '%d/%m/%Y').strftime('%Y-%m-%d') - - normas = normas.filter(data__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') - - normas = normas.filter(data_publicacao__range=(inicial, final)) - if 'tipo' in kwargs: - normas = normas.filter(tipo=kwargs['tipo']) - - if 'numero' in kwargs: - normas = normas.filter(numero=kwargs['numero']) - - if 'ano' in kwargs: - normas = normas.filter(ano=kwargs['ano']) - - if 'assunto' in kwargs: - normas = normas.filter(assuntos=kwargs['assunto']) - - return normas - - def get_context_data(self, **kwargs): - context = super(PesquisaNormaListView, self).get_context_data( - **kwargs) - - paginator = context['paginator'] - page_obj = context['page_obj'] - - context['page_range'] = make_pagination( - page_obj.number, paginator.num_pages) - return context diff --git a/sapl/templates/norma/normajuridica_filter.html b/sapl/templates/norma/normajuridica_filter.html new file mode 100644 index 000000000..42c5d0f3a --- /dev/null +++ b/sapl/templates/norma/normajuridica_filter.html @@ -0,0 +1,42 @@ +{% extends "crud/detail.html" %} +{% load i18n %} +{% load crispy_forms_tags %} + +{% block actions %} +
+ + {% blocktrans with verbose_name=view.verbose_name %} Adicionar Norma Jurídica {% endblocktrans %} + + {% if filter_url %} + {% trans 'Fazer nova pesquisa' %} + {% endif %} +
+{% endblock %} + +{% block detail_content %} + {% if not filter_url %} + {% crispy filter.form %} + {% endif %} + + {% if filter_url %} + + + + + {% if paginator.count %} + {% if paginator.count > 1 %} +

{% blocktrans with paginator.count as total_normas %}Pesquisa concluída com sucesso! Foram encontradas {{total_normas}} normas.{% endblocktrans %}

+ {% elif paginator.count == 1 %} +

{% trans 'Pesquisa concluída com sucesso! Foi encontrada 1 matéria.'%}

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

{% trans "Resultados" %}

{{n}}

Nenhuma norma encontrada com essas especificações

+ {% include "paginacao.html" %} + {% endif %} +{% endblock detail_content %} From e5584126a24100ecb0a046a2860c697715730b42 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Tue, 8 Nov 2016 10:13:43 -0200 Subject: [PATCH 02/10] Ajeita imports --- sapl/norma/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 7737b95d0..c508485d4 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -4,12 +4,12 @@ from django.core.urlresolvers import reverse from django.shortcuts import redirect from django.views.generic import FormView, ListView from django.views.generic.base import RedirectView +from django_filters.views import FilterView from sapl.base.models import AppConfig from sapl.compilacao.views import IntegracaoTaView from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, make_pagination) -from sapl.norma.forms import NormaJuridicaForm from .forms import NormaFilterSet from .models import AssuntoNorma, NormaJuridica, TipoNormaJuridica From 16f4b28d80cf518d18a7566dedf03e8095e99a15 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Tue, 8 Nov 2016 10:18:27 -0200 Subject: [PATCH 03/10] Troca url de pesquisa no template base --- sapl/templates/navbar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sapl/templates/navbar.yaml b/sapl/templates/navbar.yaml index 391f55664..d0e9f1082 100644 --- a/sapl/templates/navbar.yaml +++ b/sapl/templates/navbar.yaml @@ -45,7 +45,7 @@ - title: {% trans 'Normas Jurídicas' %} children: - title: {% trans 'Pesquisar Normas Jurídicas' %} - url: sapl.norma:normajuridica_list + url: sapl.norma:pesquisar_norma - title: {% trans 'Sistema' %} check_permission: base.menu_sistemas From a04a2bf936c40a4f1e71919e87ecc09067a0b01e Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Tue, 8 Nov 2016 10:20:02 -0200 Subject: [PATCH 04/10] Remove ANOS_CHOICES --- sapl/norma/forms.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index a6d36b883..acfaaad42 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -12,7 +12,7 @@ from django.utils.translation import ugettext_lazy as _ from sapl.crispy_layout_mixin import form_actions, to_row from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa from sapl.settings import MAX_DOC_UPLOAD_SIZE -from sapl.utils import ANO_CHOICES, RANGE_ANOS, RangeWidgetOverride +from sapl.utils import RANGE_ANOS, RangeWidgetOverride from .models import AssuntoNorma, NormaJuridica @@ -43,7 +43,7 @@ class NormaFilterSet(django_filters.FilterSet): ano = django_filters.ChoiceFilter(required=False, label=u'Ano', - choices=ANO_CHOICES) + choices=RANGE_ANOS) ementa = django_filters.CharFilter(lookup_expr='icontains') From 7b7147974e3c1b8200d1dc95c6928c14bd943ad8 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Tue, 8 Nov 2016 10:26:57 -0200 Subject: [PATCH 05/10] =?UTF-8?q?Adiciona=20NormaJuridicaForm=20e=20permis?= =?UTF-8?q?s=C3=A3o=20no=20bot=C3=A3o=20de=20adicionar=20norma=20na=20tela?= =?UTF-8?q?=20de=20pesquisa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/norma/views.py | 2 +- sapl/templates/norma/normajuridica_filter.html | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/sapl/norma/views.py b/sapl/norma/views.py index c508485d4..1cf1afaf2 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -11,7 +11,7 @@ from sapl.compilacao.views import IntegracaoTaView from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, make_pagination) -from .forms import NormaFilterSet +from .forms import NormaFilterSet, NormaJuridicaForm from .models import AssuntoNorma, NormaJuridica, TipoNormaJuridica # LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '') diff --git a/sapl/templates/norma/normajuridica_filter.html b/sapl/templates/norma/normajuridica_filter.html index 42c5d0f3a..a5cc486ad 100644 --- a/sapl/templates/norma/normajuridica_filter.html +++ b/sapl/templates/norma/normajuridica_filter.html @@ -5,7 +5,9 @@ {% block actions %}
+ {% if perms.norma.add_normajuridica %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Norma Jurídica {% endblocktrans %} + {% endif %} {% if filter_url %} {% trans 'Fazer nova pesquisa' %} From 3885e4e82e4a3cc8b555afbf4166824420def8fe Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Tue, 8 Nov 2016 10:40:24 -0200 Subject: [PATCH 06/10] adiciona imports faltando --- sapl/norma/urls.py | 2 +- sapl/norma/views.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sapl/norma/urls.py b/sapl/norma/urls.py index 541abf125..615eae0ce 100644 --- a/sapl/norma/urls.py +++ b/sapl/norma/urls.py @@ -1,7 +1,7 @@ from django.conf.urls import include, url from sapl.norma.views import (AssuntoNormaCrud, NormaCrud, NormaPesquisaView, - TipoNormaCrud) + TipoNormaCrud, NormaTaView) from .apps import AppConfig diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 1cf1afaf2..78636f792 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -2,6 +2,7 @@ from datetime import datetime from django.core.urlresolvers import reverse from django.shortcuts import redirect +from django.utils.translation import ugettext_lazy as _ from django.views.generic import FormView, ListView from django.views.generic.base import RedirectView from django_filters.views import FilterView From 7f582bedbbe9c3df503cce83c3a5c48caaf78750 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Wed, 9 Nov 2016 15:00:47 -0200 Subject: [PATCH 07/10] Conserta template do resultado da pesquisa de norma --- sapl/norma/forms.py | 6 ++- sapl/norma/urls.py | 2 +- sapl/norma/views.py | 1 + sapl/templates/navbar.yaml | 2 +- .../templates/norma/normajuridica_filter.html | 54 ++++++++++++------- 5 files changed, 41 insertions(+), 24 deletions(-) diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index acfaaad42..3e9abec99 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -50,7 +50,7 @@ class NormaFilterSet(django_filters.FilterSet): class Meta: model = NormaJuridica fields = ['tipo', 'numero', 'ano', 'data', - 'data_publicacao', 'ementa'] + 'data_publicacao', 'ementa', 'assuntos'] def __init__(self, *args, **kwargs): super(NormaFilterSet, self).__init__(*args, **kwargs) @@ -59,12 +59,14 @@ class NormaFilterSet(django_filters.FilterSet): row2 = to_row([('numero', 6), ('ano', 6)]) row3 = to_row([('ementa', 12)]) row4 = to_row([('data', 6), ('data_publicacao', 6)]) + row5 = to_row([('assuntos', 12)]) + self.form.helper = FormHelper() self.form.helper.form_method = 'GET' self.form.helper.layout = Layout( Fieldset(_('Pesquisa de Norma'), - row1, row2, row3, row4, + row1, row2, row3, row4, row5, form_actions(save_label='Pesquisar')) ) diff --git a/sapl/norma/urls.py b/sapl/norma/urls.py index 615eae0ce..8c261e23e 100644 --- a/sapl/norma/urls.py +++ b/sapl/norma/urls.py @@ -18,5 +18,5 @@ urlpatterns = [ url(r'^sistema/norma/assunto/', include(AssuntoNormaCrud.get_urls())), url(r'^norma/pesquisar$', - NormaPesquisaView.as_view(), name='pesquisar_norma'), + NormaPesquisaView.as_view(), name='norma_pesquisa'), ] diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 78636f792..5a0dc283a 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -36,6 +36,7 @@ class NormaPesquisaView(FilterView): context['title'] = _('Pesquisar Norma Jurídica') qr = self.request.GET.copy() + if 'page' in qr: del qr['page'] diff --git a/sapl/templates/navbar.yaml b/sapl/templates/navbar.yaml index d0e9f1082..9b3ee0a52 100644 --- a/sapl/templates/navbar.yaml +++ b/sapl/templates/navbar.yaml @@ -45,7 +45,7 @@ - title: {% trans 'Normas Jurídicas' %} children: - title: {% trans 'Pesquisar Normas Jurídicas' %} - url: sapl.norma:pesquisar_norma + url: sapl.norma:norma_pesquisa - title: {% trans 'Sistema' %} check_permission: base.menu_sistemas diff --git a/sapl/templates/norma/normajuridica_filter.html b/sapl/templates/norma/normajuridica_filter.html index a5cc486ad..9ae8e5294 100644 --- a/sapl/templates/norma/normajuridica_filter.html +++ b/sapl/templates/norma/normajuridica_filter.html @@ -7,12 +7,13 @@ {% if perms.norma.add_normajuridica %} {% blocktrans with verbose_name=view.verbose_name %} Adicionar Norma Jurídica {% endblocktrans %} - {% endif %} + {% endif %} {% if filter_url %} - {% trans 'Fazer nova pesquisa' %} + {% trans 'Fazer nova pesquisa' %} {% endif %}
+

{% endblock %} {% block detail_content %} @@ -21,24 +22,37 @@ {% endif %} {% if filter_url %} - - - - - {% if paginator.count %} - {% if paginator.count > 1 %} -

{% blocktrans with paginator.count as total_normas %}Pesquisa concluída com sucesso! Foram encontradas {{total_normas}} normas.{% endblocktrans %}

- {% elif paginator.count == 1 %} -

{% trans 'Pesquisa concluída com sucesso! Foi encontrada 1 matéria.'%}

- {% endif %} - - {% for n in page_obj %} - - {% endfor %} - {% else %} - + {% if page_obj|length %} +
+ {% if page_obj|length > 1 %} +

Pesquisa concluída com sucesso! Foram encontradas {{paginator.count}} normas.

+ {% elif page_obj|length == 1 %} +

{% trans 'Pesquisa concluída com sucesso! Foi encontrada 1 norma.'%}

{% endif %} -

{% trans "Resultados" %}

{{n}}

Nenhuma norma encontrada com essas especificações

- {% include "paginacao.html" %} +
+ + + + + + + + + + + {% for n in page_obj %} + + + + + + + + {% endfor %} +
TipoNúmeroAnoDataEmenta
{{n.tipo}}{{n.numero}}{{n.ano}}{{n.data}}{{n.ementa|safe}}
+ {% else %} +

+

Nenhuma norma encontrada com essas especificações

+ {% endif %} {% endif %} {% endblock detail_content %} From 3546e9f34c222577c890f2b4420ceda63adde8ee Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Wed, 9 Nov 2016 15:02:13 -0200 Subject: [PATCH 08/10] Remove template de pesquisa antigo --- sapl/templates/norma/list_pesquisa.html | 39 ------------------------- sapl/templates/norma/pesquisa.html | 20 ------------- 2 files changed, 59 deletions(-) delete mode 100644 sapl/templates/norma/list_pesquisa.html delete mode 100644 sapl/templates/norma/pesquisa.html diff --git a/sapl/templates/norma/list_pesquisa.html b/sapl/templates/norma/list_pesquisa.html deleted file mode 100644 index 8fb65745a..000000000 --- a/sapl/templates/norma/list_pesquisa.html +++ /dev/null @@ -1,39 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% load common_tags %} - -{% block actions %}{% endblock %} -{% block detail_content %} -
- {% if perms.norma.add_normajuridica %} - Adicionar Norma Jurídica - {% endif %} -
-


- {% if object_list %} - - - - - - - - - - - {% for obj in object_list %} - - - - - - - - {% endfor %} -
Tipo da Norma JuridicaNúmeroAnoDataEmenta
{{obj.tipo}}{{obj.numero}}{{obj.ano}}{{obj.data}}{{obj.ementa|safe}}
- {% else %} -

Nenhum Registro recuperado

- {% endif %} - -{% endblock detail_content %} diff --git a/sapl/templates/norma/pesquisa.html b/sapl/templates/norma/pesquisa.html deleted file mode 100644 index 0a3228575..000000000 --- a/sapl/templates/norma/pesquisa.html +++ /dev/null @@ -1,20 +0,0 @@ -{% extends "crud/detail.html" %} -{% load i18n %} -{% load crispy_forms_tags %} -{% load common_tags %} - - -{% block base_content %} - {% block actions %} -
- {% if perms.norma.add_normajuridica %} - {% trans 'Adicionar Norma Juridica' %} - {% endif %} -
-

- {% endblock %} - - {% block detail_content %} - {% crispy form %} - {% endblock %} -{% endblock %} From 96f442736b21151c2c8449940e5bbec0d0d8d0c8 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Wed, 9 Nov 2016 15:06:00 -0200 Subject: [PATCH 09/10] =?UTF-8?q?Adiciona=20op=C3=A7ao=20vazio=20na=20sele?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20ano?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/norma/forms.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index 3e9abec99..5d57f6620 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -34,6 +34,8 @@ ORDENACAO_CHOICES = [('', '---------'), class NormaFilterSet(django_filters.FilterSet): + RANGE_ANOS.insert(0, ('', 'Selecione')) + filter_overrides = {models.DateField: { 'filter_class': django_filters.DateFromToRangeFilter, 'extra': lambda f: { From 38b9c844d858f2541468343769360be18d931522 Mon Sep 17 00:00:00 2001 From: Eduardo Edson Batista Cordeiro Alves Date: Wed, 9 Nov 2016 15:09:04 -0200 Subject: [PATCH 10/10] Diminui layout --- sapl/norma/forms.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index 5d57f6620..7ae6b85ba 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -57,18 +57,16 @@ class NormaFilterSet(django_filters.FilterSet): def __init__(self, *args, **kwargs): super(NormaFilterSet, self).__init__(*args, **kwargs) - row1 = to_row([('tipo', 12)]) - row2 = to_row([('numero', 6), ('ano', 6)]) + row1 = to_row([('tipo', 4), ('numero', 4), ('ano', 4)]) + row2 = to_row([('data', 6), ('data_publicacao', 6)]) row3 = to_row([('ementa', 12)]) - row4 = to_row([('data', 6), ('data_publicacao', 6)]) - row5 = to_row([('assuntos', 12)]) - + row4 = to_row([('assuntos', 12)]) self.form.helper = FormHelper() self.form.helper.form_method = 'GET' self.form.helper.layout = Layout( Fieldset(_('Pesquisa de Norma'), - row1, row2, row3, row4, row5, + row1, row2, row3, row4, form_actions(save_label='Pesquisar')) )