diff --git a/sapl/redireciona_urls/__init__.py b/sapl/redireciona_urls/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/sapl/redireciona_urls/apps.py b/sapl/redireciona_urls/apps.py new file mode 100644 index 000000000..a59f4a200 --- /dev/null +++ b/sapl/redireciona_urls/apps.py @@ -0,0 +1,11 @@ +from django import apps +from django.utils.translation import ugettext_lazy as _ + + +class AppConfig(apps.AppConfig): + name = 'sapl.redireciona_urls' + label = 'redireciona_urls' + verbose_name = _('Redirecionador de URLs') + + def ready(self): + from . import signals diff --git a/sapl/redireciona_urls/tests.py b/sapl/redireciona_urls/tests.py new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ b/sapl/redireciona_urls/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/sapl/redireciona_urls/urls.py b/sapl/redireciona_urls/urls.py new file mode 100644 index 000000000..3944b2acb --- /dev/null +++ b/sapl/redireciona_urls/urls.py @@ -0,0 +1,18 @@ +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(), + name='redireciona_parlamentar_detail'), + url(r'^parlamentar/parlamentar_index_html$', + RedirecionaParlamentarListRedirectView.as_view(), + name='redireciona_parlamentar_list'), +] \ No newline at end of file diff --git a/sapl/redireciona_urls/views.py b/sapl/redireciona_urls/views.py new file mode 100644 index 000000000..51a7d73d0 --- /dev/null +++ b/sapl/redireciona_urls/views.py @@ -0,0 +1,35 @@ +from django.core.urlresolvers import NoReverseMatch, reverse +from django.views.generic import RedirectView + + +class RedirecionaParlamentarDetailRedirectView(RedirectView): + permanent = True + + def get_redirect_url(self): + pk = self.request.GET.get('cod_parlamentar', '') + + if pk: + kwargs = {'pk': pk} + return reverse( + 'sapl.parlamentares:parlamentar_detail', + kwargs=kwargs) + else: + return reverse('sapl.parlamentares:parlamentar_list') + + +class RedirecionaParlamentarListRedirectView(RedirectView): + permanent = True + query_string = True + + def get_redirect_url(self): + + try: + url = reverse('sapl.parlamentares:parlamentar_list') + except NoReverseMatch: + return None + pk = self.request.GET.get('hdn_num_legislatura', '') + if pk: + args = '?pk=' + pk + url = "%s%s" % (url, args) + + return url diff --git a/sapl/settings.py b/sapl/settings.py index 694c12a95..69665f60b 100644 --- a/sapl/settings.py +++ b/sapl/settings.py @@ -53,6 +53,7 @@ SAPL_APPS = ( 'sapl.lexml', 'sapl.painel', 'sapl.protocoloadm', + 'sapl.redireciona_urls', 'sapl.compilacao', 'sapl.api', diff --git a/sapl/test_urls.py b/sapl/test_urls.py index 40339cef7..5bf84f58c 100644 --- a/sapl/test_urls.py +++ b/sapl/test_urls.py @@ -172,6 +172,11 @@ apps_url_patterns_prefixs_and_users = { 'prefixs': [ '/ta', ]}, + 'redireciona_urls': { + 'prefixs': [ + '/parlamentar/parlamentar_index_html', + '/parlamentar/parlamentar_mostrar_proc', + ]}, 'lexml': { 'prefixs': [ '/lexml', @@ -328,7 +333,7 @@ urls_publicas_excecoes = { '/proposicao/1', '/proposicao/create', '/proposicao/1/edit', - '/proposicao/1/delete', + '/proposicao/1/delete' }, 'get': [ diff --git a/sapl/urls.py b/sapl/urls.py index fe6bcc71e..4ca566ccd 100644 --- a/sapl/urls.py +++ b/sapl/urls.py @@ -30,6 +30,7 @@ import sapl.norma.urls import sapl.painel.urls import sapl.parlamentares.urls import sapl.protocoloadm.urls +import sapl.redireciona_urls.urls import sapl.relatorios.urls import sapl.sessao.urls @@ -61,6 +62,7 @@ urlpatterns = [ # Folhas XSLT e extras referenciadas por documentos migrados do sapl 2.5 url(r'^XSLT/HTML/(?P.*)$', RedirectView.as_view( url='/static/XSLT/HTML/%(path)s', permanent=False)), + url(r'', include(sapl.redireciona_urls.urls)), ]