diff --git a/sapl/redireciona_urls/urls.py b/sapl/redireciona_urls/urls.py index 3944b2acb..97c583725 100644 --- a/sapl/redireciona_urls/urls.py +++ b/sapl/redireciona_urls/urls.py @@ -1,18 +1,46 @@ +from .views import ( + RedirecionaComissaoDetail, + RedirecionaComissaoList, + RedirecionaParlamentarDetail, + RedirecionaParlamentarList, + RedirecionaPautaSessaoDetail, + RedirecionaPautaSessaoList, + RedirecionaSessaoPlenariaList, + RedirecionaSAPLIndex, + RedirecionaSessaoPlenariaDetail) from django.conf.urls import url -from .views import ( - RedirecionaParlamentarDetailRedirectView, - RedirecionaParlamentarListRedirectView) from .apps import AppConfig app_name = AppConfig.name urlpatterns = [ - url(r'^parlamentar/parlamentar_mostrar_proc$', - RedirecionaParlamentarDetailRedirectView.as_view(), + url(r'^default_index_html$', + RedirecionaSAPLIndex.as_view(), + name='redireciona_sapl_index'), + url(r'^consultas/parlamentar/parlamentar_mostrar_proc$', + RedirecionaParlamentarDetail.as_view(), name='redireciona_parlamentar_detail'), - url(r'^parlamentar/parlamentar_index_html$', - RedirecionaParlamentarListRedirectView.as_view(), + url(r'^consultas/parlamentar/parlamentar_index_html$', + RedirecionaParlamentarList.as_view(), name='redireciona_parlamentar_list'), -] \ No newline at end of file + url(r'^consultas/comissao/comissao_index_html$', + RedirecionaComissaoList.as_view(), + name='redireciona_comissao_list'), + url(r'^consultas/comissao/comissao_mostrar_proc$', + RedirecionaComissaoDetail.as_view(), + name='redireciona_comissao_detail'), + url(r'^consultas/pauta_sessao/pauta_sessao_plen_mostrar_proc$', + RedirecionaPautaSessaoDetail.as_view(), + name='redireciona_pauta_sessao_detail'), + url(r'^consultas/pauta_sessao/pauta_sessao_index_html$', + RedirecionaPautaSessaoList.as_view(), + name='redireciona_pauta_sessao_list'), + url(r'^consultas/sessao_plenaria/sessao_plenaria_index_html$', + RedirecionaSessaoPlenariaList.as_view(), + name='redireciona_sessao_plenaria_list'), + url(r'^consultas/sessao_plenaria/agenda_sessao_plen_mostrar_proc$', + RedirecionaSessaoPlenariaDetail.as_view(), + name='redireciona_sessao_plenaria_detail'), +] diff --git a/sapl/redireciona_urls/views.py b/sapl/redireciona_urls/views.py index 51a7d73d0..7118305e3 100644 --- a/sapl/redireciona_urls/views.py +++ b/sapl/redireciona_urls/views.py @@ -2,7 +2,14 @@ from django.core.urlresolvers import NoReverseMatch, reverse from django.views.generic import RedirectView -class RedirecionaParlamentarDetailRedirectView(RedirectView): +class RedirecionaSAPLIndex(RedirectView): + permanent = True + + def get(self, request, *args, **kwargs): + self.url = '/' + return super(RedirecionaSAPLIndexRedirectView, self).get(self, request, *args, **kwargs) + +class RedirecionaParlamentarDetail(RedirectView): permanent = True def get_redirect_url(self): @@ -17,7 +24,7 @@ class RedirecionaParlamentarDetailRedirectView(RedirectView): return reverse('sapl.parlamentares:parlamentar_list') -class RedirecionaParlamentarListRedirectView(RedirectView): +class RedirecionaParlamentarList(RedirectView): permanent = True query_string = True @@ -33,3 +40,123 @@ class RedirecionaParlamentarListRedirectView(RedirectView): url = "%s%s" % (url, args) return url + + +class RedirecionaComissaoList(RedirectView): + permanent = True + + def get_redirect_url(self): + + try: + url = reverse('sapl.comissoes:comissao_list') + except NoReverseMatch: + return None + return url + + +class RedirecionaComissaoDetail(RedirectView): + permanent = True + + def get_redirect_url(self): + pk = self.request.GET.get('cod_comissao', '') + + if pk: + kwargs = {'pk': pk} + return reverse( + 'sapl.comissoes:comissao_detail', + kwargs=kwargs) + else: + return reverse('sapl.comissoes:comissao_list') + + +class RedirecionaPautaSessaoDetail(RedirectView): + permanent = True + + def get_redirect_url(self): + pk = self.request.GET.get('cod_sessao_plen', '') + + if pk: + kwargs = {'pk': pk} + return reverse( + 'sapl.sessao:pauta_sessao_detail', + kwargs=kwargs) + else: + return reverse('sapl.sessao:pesquisar_pauta') + + +class RedirecionaPautaSessaoList(RedirectView): + permanent = True + + def get_redirect_url(self): + try: + url = reverse('sapl.sessao:pesquisar_pauta') + except NoReverseMatch: + return None + + pk = self.request.GET.get('dat_sessao_sel', '') + + args = '' + + if pk: + day, month, year = pk.split('/') + # Remove zeros à esquerda + day = day.lstrip("0") + month = month.lstrip("0") + args = "?data_inicio__year=%s" % (year) + args += "&data_inicio__month=%s" % (month) + args += "&data_inicio__day=%s" % (day) + args += "&tipo=&salvar=Pesquisar" + url = "%s%s" % (url, args) + + return url + + +class RedirecionaSessaoPlenariaList(RedirectView): + permanent = True + + def get_redirect_url(self): + try: + url = reverse('sapl.sessao:pesquisar_sessao') + except NoReverseMatch: + return None + + year = self.request.GET.get('ano_sessao_sel', '') + if year: + month = self.request.GET.get('mes_sessao_sel', '') + else: + month = '' + + if month: + day = self.request.GET.get('dia_sessao_sel', '') + else: + day = '' + + tipo_sessao = self.request.GET.get('tip_sessao_sel', '') + + if tipo_sessao or year: + # Remove zeros à esquerda + day = day.lstrip("0") + month = month.lstrip("0") + args = '' + args += "?data_inicio__year=%s" % (year) + args += "&data_inicio__month=%s" % (month) + args += "&data_inicio__day=%s" % (day) + args += "&tipo=%s&salvar=Pesquisar" % (tipo_sessao) + url = "%s%s" % (url, args) + + return url + + +class RedirecionaSessaoPlenariaDetail(RedirectView): + permanent = True + + def get_redirect_url(self): + pk = self.request.GET.get('cod_sessao_plen', '') + + if pk: + kwargs = {'pk': pk} + return reverse( + 'sapl.sessao:sessaoplenaria_detail', + kwargs=kwargs) + else: + return reverse('sapl.sessao:pesquisar_sessao') diff --git a/sapl/test_urls.py b/sapl/test_urls.py index 5bf84f58c..74a38b6d5 100644 --- a/sapl/test_urls.py +++ b/sapl/test_urls.py @@ -174,8 +174,15 @@ apps_url_patterns_prefixs_and_users = { ]}, 'redireciona_urls': { 'prefixs': [ - '/parlamentar/parlamentar_index_html', - '/parlamentar/parlamentar_mostrar_proc', + '/default_index_html', + '/consultas/parlamentar/parlamentar_index_html', + '/consultas/parlamentar/parlamentar_mostrar_proc', + '/consultas/comissao/comissao_index_html', + '/consultas/comissao/comissao_mostrar_proc', + '/consultas/pauta_sessao/pauta_sessao_plen_mostrar_proc', + '/consultas/pauta_sessao/pauta_sessao_index_html', + '/consultas/sessao_plenaria/sessao_plenaria_index_html', + '/consultas/sessao_plenaria/agenda_sessao_plen_mostrar_proc', ]}, 'lexml': { 'prefixs': [