diff --git a/sapl/redireciona_urls/urls.py b/sapl/redireciona_urls/urls.py index 63afd8b6b..687ca7fd4 100644 --- a/sapl/redireciona_urls/urls.py +++ b/sapl/redireciona_urls/urls.py @@ -2,20 +2,22 @@ from django.conf.urls import url from .apps import AppConfig from .views import (RedirecionaAtasList, RedirecionaComissao, + RedirecionaComposicaoComissao, RedirecionaHistoricoTramitacoesList, RedirecionaMateriaLegislativaDetail, RedirecionaMateriaLegislativaList, RedirecionaMateriasPorAnoAutorTipo, RedirecionaMateriasPorAutor, RedirecionaMesaDiretoraView, RedirecionaNormasJuridicasDetail, - RedirecionaNormasJuridicasList, RedirecionaParlamentar, - RedirecionaPautaSessao, RedirecionaPresencaParlamentares, + RedirecionaNormasJuridicasList, + RedirecionaNormasJuridicasTextoIntegral, + RedirecionaParlamentar, RedirecionaPautaSessao, + RedirecionaPresencaParlamentares, RedirecionaRelatoriosList, RedirecionaRelatoriosMateriasEmTramitacaoList, RedirecionaSAPLIndex, RedirecionaSessaoPlenaria) app_name = AppConfig.name - urlpatterns = [ url(r'^default_index_html$', RedirecionaSAPLIndex.as_view(), @@ -26,6 +28,9 @@ urlpatterns = [ url(r'^consultas/comissao/comissao_', RedirecionaComissao.as_view(), name='redireciona_comissao'), + url(r'^consultas/comissao/composicao/composicao_index_html', + RedirecionaComposicaoComissao.as_view(), + name='redireciona_composicaio_comissao'), url(r'^consultas/pauta_sessao/pauta_sessao_', RedirecionaPautaSessao.as_view(), name='redireciona_pauta_sessao_'), @@ -44,6 +49,9 @@ urlpatterns = [ url(r'^consultas/norma_juridica/norma_juridica_mostrar_proc', RedirecionaNormasJuridicasDetail.as_view(), name='redireciona_norma_juridica_detail'), + url(r'^sapl_documentos/normajuridica/(?P[0-9]+)_texto_integral', + RedirecionaNormasJuridicasTextoIntegral.as_view(), + name='redireciona_norma_juridica_texto_integral'), url(r'^relatorios_administrativos/relatorios_administrativos_index_html$', RedirecionaRelatoriosList.as_view(), name='redireciona_relatorios_list'), @@ -51,6 +59,9 @@ urlpatterns = [ RedirecionaRelatoriosMateriasEmTramitacaoList.as_view(), name='redireciona_relatorio_materia_por_tramitacao'), url(r'tramitacaoMaterias/materia_mostrar_proc$', + RedirecionaMateriaLegislativaDetail.as_view(), + name='redireciona_materialegislativa_detail_tramitacao'), + url(r'consultas/materia/materia_mostrar_proc$', RedirecionaMateriaLegislativaDetail.as_view(), name='redireciona_materialegislativa_detail'), url(r'^generico/materia_pesquisar_', @@ -71,4 +82,4 @@ urlpatterns = [ url(r'propositurasAnoAutorTipo', RedirecionaMateriasPorAnoAutorTipo.as_view(), name='redireciona_materia_por_ano_autor_tipo_list'), -] +] \ No newline at end of file diff --git a/sapl/redireciona_urls/views.py b/sapl/redireciona_urls/views.py index 369ff7518..82f6f44ea 100644 --- a/sapl/redireciona_urls/views.py +++ b/sapl/redireciona_urls/views.py @@ -1,14 +1,14 @@ from django.core.urlresolvers import NoReverseMatch, reverse from django.views.generic import RedirectView +from sapl.audiencia.apps import AppConfig as audienciaConfig from sapl.base.apps import AppConfig as atasConfig from sapl.comissoes.apps import AppConfig as comissoesConfig from sapl.materia.apps import AppConfig as materiaConfig from sapl.norma.apps import AppConfig as normaConfig +from sapl.norma.models import NormaJuridica from sapl.parlamentares.apps import AppConfig as parlamentaresConfig from sapl.sessao.apps import AppConfig as sessaoConfig -from sapl.audiencia.apps import AppConfig as audienciaConfig - from .exceptions import UnknownUrlNameError EMPTY_STRING = '' @@ -142,6 +142,33 @@ class RedirecionaComissao(RedirectView): return url +class RedirecionaComposicaoComissao(RedirectView): + permanent = True + + def get_redirect_url(self): + url = EMPTY_STRING + pk_composicao = self.request.GET.get( + 'cod_periodo_comp_sel', EMPTY_STRING) + pk_comissao = self.request.GET.get('cod_comissao', EMPTY_STRING) + + if pk_comissao: + kwargs = {'pk': pk_comissao} + + try: + url = reverse(comissao_detail, kwargs=kwargs) + except NoReverseMatch: + raise UnknownUrlNameError(comissao_detail) + else: + try: + url = reverse(comissao_list) + except NoReverseMatch: + raise UnknownUrlNameError(comissao_list) + + url = has_iframe(url, self.request) + + return url + + class RedirecionaPautaSessao(RedirectView): permanent = True @@ -418,6 +445,24 @@ class RedirecionaNormasJuridicasDetail(RedirectView): return url +class RedirecionaNormasJuridicasTextoIntegral(RedirectView): + permanent = False + + def get_redirect_url(self, **kwargs): + # import ipdb;ipdb.set_trace() + url = EMPTY_STRING + try: + norma = NormaJuridica.objects.get(pk=kwargs['norma_id']) + if norma: + url = norma.texto_integral.url + except Exception as e: + raise e + + url = has_iframe(url, self.request) + + return url + + class RedirecionaNormasJuridicasList(RedirectView): permanent = True diff --git a/sapl/test_urls.py b/sapl/test_urls.py index 0f1671c98..851b1995b 100644 --- a/sapl/test_urls.py +++ b/sapl/test_urls.py @@ -278,25 +278,28 @@ def test_urlpatterns(url_item, admin_client): """ % (app_name, url) app_name = app_name[5:] - - assert app_name in apps_url_patterns_prefixs_and_users, """ - A app (%s) da url (%s) não consta na lista de prefixos do teste - """ % (app_name, url) - - if app_name in apps_url_patterns_prefixs_and_users: - prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs'] - - isvalid = False - for prefix in prefixs: - if url.startswith(prefix): - isvalid = True - break - - assert isvalid, """ - O prefixo da url (%s) não está no padrão de sua app (%s). - Os prefixos permitidos são: - %s - """ % (url, app_name, prefixs) + if app_name != 'redireciona_urls': + assert app_name in apps_url_patterns_prefixs_and_users, """ + A app (%s) da url (%s) não consta na lista de prefixos do teste + """ % (app_name, url) + + if app_name in apps_url_patterns_prefixs_and_users: + prefixs = apps_url_patterns_prefixs_and_users[app_name]['prefixs'] + + isvalid = False + for prefix in prefixs: + if url.startswith(prefix): + isvalid = True + break + + assert isvalid, """ + O prefixo da url (%s) não está no padrão de sua app (%s). + Os prefixos permitidos são: + %s + """ % (url, app_name, prefixs) + else: + # ignorando app de redirecionamento de urls no padrão do SAPL 2.5 + pass urls_publicas_excecoes = {