From c5af7bc7746c2a4af305e35e7a5b54af2c913197 Mon Sep 17 00:00:00 2001 From: LeandroRoberto Date: Thu, 6 Oct 2016 10:27:53 -0300 Subject: [PATCH] Troca btns de listagem por nova pesquisa em details MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Foi desabilitada as funções de ListView para NormaCrud, MateriaCrud, SessaoCrud, sendo substituídos os botões de listar por pesquisar. Onde,por exemplo, aparecia "Listar Sessão Plenária" agora "Fazer NovaPesquisa" --- sapl/materia/views.py | 26 ++++++++++++++++++++++++ sapl/norma/views.py | 47 ++++++++++++++++++++++++++++++++----------- sapl/sessao/views.py | 12 +++++------ 3 files changed, 67 insertions(+), 18 deletions(-) diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 7c2b0d8f5..4efbc599b 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -21,6 +21,7 @@ from django.utils.encoding import force_bytes from django.utils.http import urlsafe_base64_decode, urlsafe_base64_encode from django.utils.translation import ugettext_lazy as _ from django.views.generic import CreateView, ListView, TemplateView, UpdateView +from django.views.generic.base import RedirectView from django_filters.views import FilterView from sapl.base.models import CasaLegislativa @@ -52,6 +53,7 @@ from .models import (AcompanhamentoMateria, Anexada, Autor, Autoria, TipoFimRelatoria, TipoMateriaLegislativa, TipoProposicao, Tramitacao, UnidadeTramitacao) + OrigemCrud = Crud.build(Origem, '') TipoMateriaCrud = CrudAux.build( @@ -810,6 +812,30 @@ class MateriaLegislativaCrud(Crud): class BaseMixin(Crud.BaseMixin): list_field_names = ['tipo', 'numero', 'ano', 'data_apresentacao'] + @property + def list_url(self): + return '' + + @property + def search_url(self): + namespace = self.model._meta.app_config.name + return reverse('%s:%s' % (namespace, 'pesquisar_materia')) + + class CreateView(Crud.CreateView): + + @property + def cancel_url(self): + return self.search_url + + class ListView(Crud.ListView, RedirectView): + + def get_redirect_url(self, *args, **kwargs): + namespace = self.model._meta.app_config.name + return reverse('%s:%s' % (namespace, 'pesquisar_materia')) + + def get(self, request, *args, **kwargs): + return RedirectView.get(self, request, *args, **kwargs) + # FIXME - qual a finalidade dessa classe?? class DocumentoAcessorioView(PermissionRequiredMixin, CreateView): diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 47813a3b0..a93bb012d 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -1,7 +1,9 @@ from datetime import datetime +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 sapl.compilacao.views import IntegracaoTaView from sapl.crud.base import RP_DETAIL, RP_LIST, Crud, CrudAux, make_pagination @@ -10,9 +12,8 @@ from sapl.norma.forms import NormaJuridicaForm from .forms import NormaJuridicaPesquisaForm from .models import AssuntoNorma, NormaJuridica, TipoNormaJuridica -# LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '') - +# LegislacaoCitadaCrud = Crud.build(LegislacaoCitada, '') AssuntoNormaCrud = CrudAux.build(AssuntoNorma, 'assunto_norma_juridica', list_field_names=['assunto', 'descricao']) @@ -27,6 +28,38 @@ class NormaCrud(Crud): help_path = 'norma_juridica' public = [RP_LIST, RP_DETAIL] + class BaseMixin(Crud.BaseMixin): + list_field_names = ['tipo', 'numero', 'ano', 'ementa'] + + @property + def list_url(self): + return '' + + @property + def search_url(self): + namespace = self.model._meta.app_config.name + return reverse('%s:%s' % (namespace, 'norma_pesquisa')) + + class CreateView(Crud.CreateView): + form_class = NormaJuridicaForm + + @property + def cancel_url(self): + return self.search_url + + @property + def layout_key(self): + return 'NormaJuridicaCreate' + + class ListView(Crud.ListView, RedirectView): + + def get_redirect_url(self, *args, **kwargs): + namespace = self.model._meta.app_config.name + return reverse('%s:%s' % (namespace, 'norma_pesquisa')) + + def get(self, request, *args, **kwargs): + return RedirectView.get(self, request, *args, **kwargs) + class UpdateView(Crud.UpdateView): form_class = NormaJuridicaForm @@ -42,16 +75,6 @@ class NormaCrud(Crud): self.initial['numero_materia'] = norma.materia.numero return self.initial.copy() - class CreateView(Crud.CreateView): - form_class = NormaJuridicaForm - - @property - def layout_key(self): - return 'NormaJuridicaCreate' - - class BaseMixin(Crud.BaseMixin): - list_field_names = ['tipo', 'numero', 'ano', 'ementa'] - class NormaPesquisaView(FormView): template_name = "norma/pesquisa.html" diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 1f233a0ca..30603347d 100644 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -429,10 +429,6 @@ class SessaoCrud(Crud): def list_url(self): return '' - @property - def cancel_url(self): - return self.search_url - @property def search_url(self): namespace = self.model._meta.app_config.name @@ -449,6 +445,10 @@ class SessaoCrud(Crud): class CreateView(Crud.CreateView): + @property + def cancel_url(self): + return self.search_url + def get_initial(self): legislatura = Legislatura.objects.order_by('-data_inicio')[0] return {'legislatura': legislatura} @@ -849,9 +849,9 @@ class ResumoView(DetailView): context.update({'basica': [ _('Tipo de Sessão: %(tipo)s') % {'tipo': self.object.tipo}, _('Abertura: %(abertura)s - %(hora_inicio)s') % { - 'abertura': abertura, 'hora_inicio': self.object.hora_inicio}, + 'abertura': abertura, 'hora_inicio': self.object.hora_inicio}, _('Encerramento: %(encerramento)s - %(hora_fim)s') % { - 'encerramento': encerramento, 'hora_fim': self.object.hora_fim}, + 'encerramento': encerramento, 'hora_fim': self.object.hora_fim}, ]}) # ===================================================================== # Conteúdo Multimídia