Skip to content

Commit

Permalink
127 redirecionar urls (#2089)
Browse files Browse the repository at this point in the history
* #127 Adicionando urls para composicao de comissão

Signed-off-by: Eliseu Egewarth <[email protected]>

* #127 Adicionando url para consultas/materia

Signed-off-by: Eliseu Egewarth <[email protected]>

* Fix #127 Ignorando app redireciona_urls em test_urls.py

Signed-off-by: Eliseu Egewarth <[email protected]>
  • Loading branch information
eliseuegewarth authored and VictorFabreF committed Jul 27, 2018
1 parent 149efb1 commit 00f50cd
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 25 deletions.
19 changes: 15 additions & 4 deletions sapl/redireciona_urls/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,22 @@

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(),
Expand All @@ -26,6 +28,9 @@
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_'),
Expand All @@ -44,13 +49,19 @@
url(r'^consultas/norma_juridica/norma_juridica_mostrar_proc',
RedirecionaNormasJuridicasDetail.as_view(),
name='redireciona_norma_juridica_detail'),
url(r'^sapl_documentos/normajuridica/(?P<norma_id>[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'),
url(r'tramitacaoMaterias/tramitacaoMaterias',
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_',
Expand All @@ -71,4 +82,4 @@
url(r'propositurasAnoAutorTipo',
RedirecionaMateriasPorAnoAutorTipo.as_view(),
name='redireciona_materia_por_ano_autor_tipo_list'),
]
]
49 changes: 47 additions & 2 deletions sapl/redireciona_urls/views.py
Original file line number Diff line number Diff line change
@@ -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 = ''
Expand Down Expand Up @@ -142,6 +142,33 @@ def get_redirect_url(self):
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

Expand Down Expand Up @@ -418,6 +445,24 @@ def get_redirect_url(self):
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
Expand Down
41 changes: 22 additions & 19 deletions sapl/test_urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down

0 comments on commit 00f50cd

Please sign in to comment.