Browse Source

Revert "Remove redirect de URLs (#3652)"

This reverts commit 8262a192ab.
pull/3669/head
Edward Ribeiro 1 year ago
parent
commit
f96b199abf
  1. 0
      sapl/redireciona_urls/__init__.py
  2. 8
      sapl/redireciona_urls/apps.py
  3. 13
      sapl/redireciona_urls/exceptions.py
  4. 712
      sapl/redireciona_urls/tests.py
  5. 85
      sapl/redireciona_urls/urls.py
  6. 858
      sapl/redireciona_urls/views.py
  7. 1
      sapl/settings.py
  8. 27
      sapl/test_urls.py
  9. 3
      sapl/urls.py

0
sapl/redireciona_urls/__init__.py

8
sapl/redireciona_urls/apps.py

@ -0,0 +1,8 @@
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')

13
sapl/redireciona_urls/exceptions.py

@ -0,0 +1,13 @@
from django.utils.translation import ugettext as _
class UnknownUrlNameError(Exception):
def __init__(self, url_name):
self.url_name = url_name
def __str__(self):
return repr(
_("Funcionalidade")
+ " '%s' " % (self.url_name)
+ _("pode ter sido removida ou movida para outra url."))

712
sapl/redireciona_urls/tests.py

@ -0,0 +1,712 @@
from django.test import TestCase
from django.urls import reverse
MovedPermanentlyHTTPStatusCode = 301
EMPTY_STRING = ''
class RedirecionaURLsTests(TestCase):
def test_redireciona_index_SAPL(self):
response = self.client.get(reverse(
'sapl.redireciona_urls:redireciona_sapl_index')
)
url_e = reverse('sapl.base:sapl_index')
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaParlamentarTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_parlamentar'
def test_redireciona_parlamentar_list(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.parlamentares:parlamentar_list')
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_parlamentar_list_por_legislatura(self):
numero_legislatura = 123
url = reverse(self.url_pattern)
url_e = reverse('sapl.parlamentares:parlamentar_list')
url = "%s%s" % (
url,
"?hdn_num_legislatura=%s" % (numero_legislatura)
)
url_e = "%s%s" % (url_e, "?pk=%s" % numero_legislatura)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_parlamentar_detail(self):
url = reverse(self.url_pattern)
pk_parlamentar = 21
url = "%s%s" % (url, "?cod_parlamentar=%s" % (pk_parlamentar))
url_e = reverse(
'sapl.parlamentares:parlamentar_detail',
kwargs={'pk': pk_parlamentar}
)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaComissaoTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_comissao'
def test_redireciona_comissao_detail(self):
url = reverse(self.url_pattern)
pk_comissao = 21
url = "%s%s" % (url, "?cod_comissao=%s" % (pk_comissao))
url_e = reverse(
'sapl.comissoes:comissao_detail',
kwargs={'pk': pk_comissao}
)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_comissao_list(self):
url = reverse(self.url_pattern)
url_e = reverse(
'sapl.comissoes:comissao_list')
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaPautaSessaoTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_pauta_sessao_'
def test_redireciona_pauta_sessao_detail(self):
url = reverse(self.url_pattern)
pk_pauta_sessao = 21
url = "%s%s" % (url, "?cod_sessao_plen=%s" % (pk_pauta_sessao))
url_e = reverse(
'sapl.sessao:pauta_sessao_detail',
kwargs={'pk': pk_pauta_sessao}
)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_pauta_sessao_list(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.sessao:pesquisar_pauta')
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_pauta_sessao_list_por_dat_sessao_sel(self):
url = reverse(self.url_pattern)
ano_s_p = "2016"
mes_s_p = "05"
dia_s_p = "14"
data_s_p = "%s/%s/%s" % (dia_s_p, mes_s_p, ano_s_p)
url = "%s%s" % (url, "?dat_sessao_sel=%s" % data_s_p)
url_e = reverse('sapl.sessao:pesquisar_pauta')
args_e = EMPTY_STRING
args_e += "?data_inicio__year=%s" % (ano_s_p)
args_e += "&data_inicio__month=%s" % (mes_s_p.lstrip("0"))
args_e += "&data_inicio__day=%s" % (dia_s_p.lstrip("0"))
args_e += "&tipo=&salvar=Pesquisar"
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaMesaDiretoraTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_mesa_diretora'
def test_redireciona_mesa_diretora(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.parlamentares:mesa_diretora')
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaMesaDiretoraParlamentarTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_mesa_diretora_parlamentar'
def test_redireciona_mesa_diretora_parlamentar(self):
url = reverse(self.url_pattern)
pk_parlamentar = 21
url = "%s%s" % (url, "?cod_parlamentar=%s" % (pk_parlamentar))
url_e = reverse(
'sapl.parlamentares:parlamentar_detail',
kwargs={'pk': pk_parlamentar}
)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaNormasJuridicasListTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_norma_juridica_pesquisa'
def test_redireciona_norma_juridica_pesquisa_sem_parametros(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.norma:norma_pesquisa')
tipo_norma = EMPTY_STRING
numero_norma = EMPTY_STRING
ano_norma = EMPTY_STRING
periodo_inicial_aprovacao = EMPTY_STRING
periodo_final_aprovacao = EMPTY_STRING
periodo_inicial_publicacao = EMPTY_STRING
periodo_final_publicacao = EMPTY_STRING
ementa_norma = EMPTY_STRING
assuntos_norma = EMPTY_STRING
args = EMPTY_STRING
args += "?lst_tip_norma=%s" % (tipo_norma)
args += "&txt_numero=%s" % (numero_norma)
args += "&txt_ano=%s" % (ano_norma)
args += "&dt_norma=%s" % (periodo_inicial_aprovacao)
args += "&dt_norma2=%s" % (periodo_final_aprovacao)
args += "&dt_public=%s" % (periodo_inicial_publicacao)
args += "&dt_public2=%s" % (periodo_final_publicacao)
args += "&txt_assunto=%s" % (ementa_norma)
args += "&lst_assunto_norma=%s" % (assuntos_norma)
args += "&salvar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
args_e = EMPTY_STRING
args_e += "?tipo=%s" % (tipo_norma)
args_e += "&numero=%s" % (numero_norma)
args_e += "&ano=%s" % (ano_norma)
args_e += "&data_0=%s" % (periodo_inicial_aprovacao)
args_e += "&data_1=%s" % (periodo_final_aprovacao)
args_e += "&data_publicacao_0=%s" % (periodo_inicial_publicacao)
args_e += "&data_publicacao_1=%s" % (periodo_final_publicacao)
args_e += "&ementa=%s" % (ementa_norma)
args_e += "&assuntos=%s" % (assuntos_norma)
args_e += "&salvar=%s" % ('Pesquisar')
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_norma_juridica_pesquisa_por_tipo(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.norma:norma_pesquisa')
tipo_norma = '4'
numero_norma = EMPTY_STRING
ano_norma = EMPTY_STRING
periodo_inicial_aprovacao = EMPTY_STRING
periodo_final_aprovacao = EMPTY_STRING
periodo_inicial_publicacao = EMPTY_STRING
periodo_final_publicacao = EMPTY_STRING
ementa_norma = EMPTY_STRING
assuntos_norma = EMPTY_STRING
args = EMPTY_STRING
args += "?lst_tip_norma=%s" % (tipo_norma)
args += "&txt_numero=%s" % (numero_norma)
args += "&txt_ano=%s" % (ano_norma)
args += "&dt_norma=%s" % (periodo_inicial_aprovacao)
args += "&dt_norma2=%s" % (periodo_final_aprovacao)
args += "&dt_public=%s" % (periodo_inicial_publicacao)
args += "&dt_public2=%s" % (periodo_final_publicacao)
args += "&txt_assunto=%s" % (ementa_norma)
args += "&lst_assunto_norma=%s" % (assuntos_norma)
args += "&salvar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
args_e = EMPTY_STRING
args_e += "?tipo=%s" % (tipo_norma)
args_e += "&numero=%s" % (numero_norma)
args_e += "&ano=%s" % (ano_norma)
args_e += "&data_0=%s" % (periodo_inicial_aprovacao)
args_e += "&data_1=%s" % (periodo_final_aprovacao)
args_e += "&data_publicacao_0=%s" % (periodo_inicial_publicacao)
args_e += "&data_publicacao_1=%s" % (periodo_final_publicacao)
args_e += "&ementa=%s" % (ementa_norma)
args_e += "&assuntos=%s" % (assuntos_norma)
args_e += "&salvar=%s" % ('Pesquisar')
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_norma_juridica_pesquisa_por_ano(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.norma:norma_pesquisa')
tipo_norma = EMPTY_STRING
numero_norma = EMPTY_STRING
ano_norma = '2010'
periodo_inicial_aprovacao = EMPTY_STRING
periodo_final_aprovacao = EMPTY_STRING
periodo_inicial_publicacao = EMPTY_STRING
periodo_final_publicacao = EMPTY_STRING
ementa_norma = EMPTY_STRING
assuntos_norma = EMPTY_STRING
args = EMPTY_STRING
args += "?lst_tip_norma=%s" % (tipo_norma)
args += "&txt_numero=%s" % (numero_norma)
args += "&txt_ano=%s" % (ano_norma)
args += "&dt_norma=%s" % (periodo_inicial_aprovacao)
args += "&dt_norma2=%s" % (periodo_final_aprovacao)
args += "&dt_public=%s" % (periodo_inicial_publicacao)
args += "&dt_public2=%s" % (periodo_final_publicacao)
args += "&txt_assunto=%s" % (ementa_norma)
args += "&lst_assunto_norma=%s" % (assuntos_norma)
args += "&salvar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
args_e = EMPTY_STRING
args_e += "?tipo=%s" % (tipo_norma)
args_e += "&numero=%s" % (numero_norma)
args_e += "&ano=%s" % (ano_norma)
args_e += "&data_0=%s" % (periodo_inicial_aprovacao)
args_e += "&data_1=%s" % (periodo_final_aprovacao)
args_e += "&data_publicacao_0=%s" % (periodo_inicial_publicacao)
args_e += "&data_publicacao_1=%s" % (periodo_final_publicacao)
args_e += "&ementa=%s" % (ementa_norma)
args_e += "&assuntos=%s" % (assuntos_norma)
args_e += "&salvar=%s" % ('Pesquisar')
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaNormasJuridicasDetailTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_norma_juridica_detail'
def test_redireciona_norma_juridica_detail(self):
url = reverse(self.url_pattern)
pk_norma = 120
args = EMPTY_STRING
args += "?cod_norma=%s" % (pk_norma)
url = "%s%s" % (url, args)
url_e = reverse(
'sapl.norma:normajuridica_detail',
kwargs={
'pk': pk_norma}
)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_norma_juridica_detail_sem_parametros(self):
url = reverse(self.url_pattern)
pk_norma = EMPTY_STRING
args = EMPTY_STRING
args += "?cod_norma=%s" % (pk_norma)
url = "%s%s" % (url, args)
url_e = reverse('sapl.norma:norma_pesquisa')
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaSessaoPlenariaTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_sessao_plenaria_'
def test_redireciona_sessao_plenaria_detail(self):
url = reverse(self.url_pattern)
pk_sessao_plenaria = 258
url = "%s%s" % (url, "?cod_sessao_plen=%s" % (pk_sessao_plenaria))
url_e = reverse(
'sapl.sessao:sessaoplenaria_detail',
kwargs={'pk': pk_sessao_plenaria}
)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_sessao_plenaria_list_sem_parametro(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.sessao:pesquisar_sessao')
year = EMPTY_STRING
month = EMPTY_STRING
day = EMPTY_STRING
tipo_sessao = EMPTY_STRING
args = EMPTY_STRING
args += "?ano_sessao_sel=%s" % (year)
args += "&mes_sessao_sel=%s" % (month)
args += "&dia_sessao_sel=%s" % (day)
args += "&tip_sessao_sel=%s" % (tipo_sessao)
url = "%s%s" % (url, args)
# Remove zeros à esquerda
day = day.lstrip("0")
month = month.lstrip("0")
args_e = EMPTY_STRING
args_e += "?data_inicio__year=%s" % (year)
args_e += "&data_inicio__month=%s" % (month)
args_e += "&data_inicio__day=%s" % (day)
args_e += "&tipo=%s&salvar=Pesquisar" % (tipo_sessao)
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_sessao_plenaria_list_sem_tipo(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.sessao:pesquisar_sessao')
year = '2015'
month = '04'
day = '06'
tipo_sessao = EMPTY_STRING
args = EMPTY_STRING
args += "?ano_sessao_sel=%s" % (year)
args += "&mes_sessao_sel=%s" % (month)
args += "&dia_sessao_sel=%s" % (day)
args += "&tip_sessao_sel=%s" % (tipo_sessao)
url = "%s%s" % (url, args)
# Remove zeros à esquerda
day = day.lstrip("0")
month = month.lstrip("0")
args_e = EMPTY_STRING
args_e += "?data_inicio__year=%s" % (year)
args_e += "&data_inicio__month=%s" % (month)
args_e += "&data_inicio__day=%s" % (day)
args_e += "&tipo=%s&salvar=Pesquisar" % (tipo_sessao)
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_sessao_plenaria_list_sem_tipo_e_ano(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.sessao:pesquisar_sessao')
year = EMPTY_STRING
month = '04'
day = '06'
tipo_sessao = EMPTY_STRING
args = EMPTY_STRING
args += "?ano_sessao_sel=%s" % (year)
args += "&mes_sessao_sel=%s" % (month)
args += "&dia_sessao_sel=%s" % (day)
args += "&tip_sessao_sel=%s" % (tipo_sessao)
url = "%s%s" % (url, args)
# Remove zeros à esquerda
day = day.lstrip("0")
month = month.lstrip("0")
args_e = EMPTY_STRING
args_e += "?data_inicio__year=%s" % (year)
args_e += "&data_inicio__month=%s" % (month)
args_e += "&data_inicio__day=%s" % (day)
args_e += "&tipo=%s&salvar=Pesquisar" % (tipo_sessao)
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_sessao_plenaria_list_sem_ano(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.sessao:pesquisar_sessao')
year = EMPTY_STRING
month = '04'
day = '06'
tipo_sessao = '4'
args = EMPTY_STRING
args += "?ano_sessao_sel=%s" % (year)
args += "&mes_sessao_sel=%s" % (month)
args += "&dia_sessao_sel=%s" % (day)
args += "&tip_sessao_sel=%s" % (tipo_sessao)
url = "%s%s" % (url, args)
# Remove zeros à esquerda
day = day.lstrip("0")
month = month.lstrip("0")
args_e = EMPTY_STRING
args_e += "?data_inicio__year=%s" % (year)
args_e += "&data_inicio__month=%s" % (month)
args_e += "&data_inicio__day=%s" % (day)
args_e += "&tipo=%s&salvar=Pesquisar" % (tipo_sessao)
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_sessao_plenaria_list_sem_mes_dia(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.sessao:pesquisar_sessao')
year = '2015'
month = EMPTY_STRING
day = EMPTY_STRING
tipo_sessao = '4'
args = EMPTY_STRING
args += "?ano_sessao_sel=%s" % (year)
args += "&mes_sessao_sel=%s" % (month)
args += "&dia_sessao_sel=%s" % (day)
args += "&tip_sessao_sel=%s" % (tipo_sessao)
url = "%s%s" % (url, args)
# Remove zeros à esquerda
day = day.lstrip("0")
month = month.lstrip("0")
args_e = EMPTY_STRING
args_e += "?data_inicio__year=%s" % (year)
args_e += "&data_inicio__month=%s" % (month)
args_e += "&data_inicio__day=%s" % (day)
args_e += "&tipo=%s&salvar=Pesquisar" % (tipo_sessao)
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaHistoricoTramitacoesListTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_historico_tramitacoes'
def test_redireciona_historico_tramitacoes_sem_parametros(self):
args_e = EMPTY_STRING
args = EMPTY_STRING
url = reverse(self.url_pattern)
url_e = reverse('sapl.base:historico_tramitacoes')
inicio_dt_tramitacao = EMPTY_STRING
fim_dt_tramitacao = EMPTY_STRING
tipo_materia = EMPTY_STRING
unidade_local_tramitacao = EMPTY_STRING
status_tramitacao = EMPTY_STRING
args += "?txt_dat_inicio_periodo=%s" % (inicio_dt_tramitacao)
args += "&txt_dat_fim_periodo=%s" % (fim_dt_tramitacao)
args += "&lst_tip_materia=%s" % (tipo_materia)
args += "&lst_cod_unid_tram_dest=%s" % (unidade_local_tramitacao)
args += "&lst_status=%s" % (status_tramitacao)
args += "&btn_materia_pesquisar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
# Remove zeros à esquerda
inicio_dt_tramitacao = inicio_dt_tramitacao.lstrip("0")
fim_dt_tramitacao = fim_dt_tramitacao.lstrip("0")
tipo_materia = tipo_materia.lstrip("0")
unidade_local_tramitacao = unidade_local_tramitacao.lstrip("0")
status_tramitacao = status_tramitacao.lstrip("0")
if (
(inicio_dt_tramitacao != EMPTY_STRING) or
(fim_dt_tramitacao != EMPTY_STRING) or
(tipo_materia != EMPTY_STRING) or
(unidade_local_tramitacao != EMPTY_STRING) or
(status_tramitacao != EMPTY_STRING)):
args_e += "?tramitacao__data_tramitacao_0=%s" % (
inicio_dt_tramitacao)
args_e += "&tramitacao__data_tramitacao_1=%s" % (
fim_dt_tramitacao)
args_e += "&tipo=%s" % (tipo_materia)
args_e += "&tramitacao__unidade_tramitacao_local=%s" % (
unidade_local_tramitacao)
args_e += "&tramitacao__status=%s" % (status_tramitacao)
args_e += "&salvar=%s" % ('Pesquisar')
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_historico_tramitacoes(self):
args = EMPTY_STRING
args_e = EMPTY_STRING
url = reverse(self.url_pattern)
url_e = reverse('sapl.base:historico_tramitacoes')
inicio_dt_tramitacao = '12/07/2000'
fim_dt_tramitacao = '26/05/2017'
unidade_local_tramitacao = '0'
tipo_materia = '0'
status_tramitacao = '0'
args += "?txt_dat_inicio_periodo=%s" % (inicio_dt_tramitacao)
args += "&txt_dat_fim_periodo=%s" % (fim_dt_tramitacao)
args += "&lst_tip_materia=%s" % (tipo_materia)
args += "&lst_cod_unid_tram_dest=%s" % (unidade_local_tramitacao)
args += "&lst_status=%s" % (status_tramitacao)
args += "&btn_materia_pesquisar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
# Remove zeros à esquerda
inicio_dt_tramitacao = inicio_dt_tramitacao.lstrip("0")
fim_dt_tramitacao = fim_dt_tramitacao.lstrip("0")
tipo_materia = tipo_materia.lstrip("0")
unidade_local_tramitacao = unidade_local_tramitacao.lstrip("0")
status_tramitacao = status_tramitacao.lstrip("0")
if (
(inicio_dt_tramitacao != EMPTY_STRING) or
(fim_dt_tramitacao != EMPTY_STRING) or
(tipo_materia != EMPTY_STRING) or
(unidade_local_tramitacao != EMPTY_STRING) or
(status_tramitacao != EMPTY_STRING)):
args_e += "?tramitacao__data_tramitacao_0=%s" % (
inicio_dt_tramitacao)
args_e += "&tramitacao__data_tramitacao_1=%s" % (
fim_dt_tramitacao)
args_e += "&tipo=%s" % (tipo_materia)
args_e += "&tramitacao__unidade_tramitacao_local=%s" % (
unidade_local_tramitacao)
args_e += "&tramitacao__status=%s" % (status_tramitacao)
args_e += "&salvar=%s" % ('Pesquisar')
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaPresencaParlamentaresTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_presencaparlamentar_list'
def test_redireciona_presenca_list_sem_parametros(self):
args_e = EMPTY_STRING
args = EMPTY_STRING
url = reverse(self.url_pattern)
url_e = reverse('sapl.base:presenca_sessao')
inicio_intervalo_presenca = EMPTY_STRING
fim_intervalo_presenca = EMPTY_STRING
args += "?txt_dat_inicio=%s" % (
inicio_intervalo_presenca)
args += "&txt_dat_fim=%s" % (
fim_intervalo_presenca)
url = "%s%s" % (url, args)
# Remove zeros à esquerda
inicio_intervalo_presenca = inicio_intervalo_presenca.lstrip("0")
fim_intervalo_presenca = fim_intervalo_presenca.lstrip("0")
args_e += "?data_inicio_0=%s" % (
inicio_intervalo_presenca)
args_e += "&data_inicio_1=%s" % (
fim_intervalo_presenca)
args_e += "&salvar=%s" % ('Pesquisar')
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_presenca_list(self):
args_e = EMPTY_STRING
args = EMPTY_STRING
url = reverse(self.url_pattern)
url_e = reverse('sapl.base:presenca_sessao')
inicio_intervalo_presenca = '01/02/2015'
fim_intervalo_presenca = '01/02/2017'
args += "?txt_dat_inicio=%s" % (
inicio_intervalo_presenca)
args += "&txt_dat_fim=%s" % (
fim_intervalo_presenca)
url = "%s%s" % (url, args)
# Remove zeros à esquerda
inicio_intervalo_presenca = inicio_intervalo_presenca.lstrip("0")
fim_intervalo_presenca = fim_intervalo_presenca.lstrip("0")
args_e += "?data_inicio_0=%s" % (
inicio_intervalo_presenca)
args_e += "&data_inicio_1=%s" % (
fim_intervalo_presenca)
args_e += "&salvar=%s" % ('Pesquisar')
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaMateriasPorAutorTests(TestCase):
url_pattern = 'sapl.redireciona_urls:redireciona_materias_por_autor_list'
def test_redireciona_materias_por_autor_list_sem_parametros(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.base:materia_por_autor')
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
class RedirecionaMateriasPorAnoAutorTipoTests(TestCase):
url_pattern = (
'sapl.redireciona_urls:redireciona_materia_por_ano_autor_tipo_list')
def test_redireciona_materias_por_ano_autor_tipo_list_sem_parametros(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.base:materia_por_ano_autor_tipo')
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)
def test_redireciona_materias_por_ano_autor_tipo_list(self):
url = reverse(self.url_pattern)
url_e = reverse('sapl.base:materia_por_ano_autor_tipo')
ano = 2017
args = "?ano=%s" % (ano)
url = "%s%s" % (url, args)
args_e = "?ano=%s&salvar=Pesquisar" % (ano)
url_e = "%s%s" % (url_e, args_e)
response = self.client.get(url)
self.assertEqual(response.status_code, MovedPermanentlyHTTPStatusCode)
self.assertEqual(response.url, url_e)

85
sapl/redireciona_urls/urls.py

@ -0,0 +1,85 @@
from django.conf.urls import url
from .apps import AppConfig
from .views import (RedirecionaAtasList, RedirecionaComissao,
RedirecionaComposicaoComissao,
RedirecionaHistoricoTramitacoesList,
RedirecionaMateriaLegislativaDetail,
RedirecionaMateriaLegislativaList,
RedirecionaMateriasPorAnoAutorTipo,
RedirecionaMateriasPorAutor, RedirecionaMesaDiretoraView,
RedirecionaNormasJuridicasDetail,
RedirecionaNormasJuridicasList,
RedirecionaNormasJuridicasTextoIntegral,
RedirecionaParlamentar, RedirecionaPautaSessao,
RedirecionaPresencaParlamentares,
RedirecionaRelatoriosList,
RedirecionaRelatoriosMateriasEmTramitacaoList,
RedirecionaSAPLIndex, RedirecionaSessaoPlenaria)
app_name = AppConfig.name
urlpatterns = [
url(r'^default_index_html$',
RedirecionaSAPLIndex.as_view(),
name='redireciona_sapl_index'),
url(r'^consultas/parlamentar/parlamentar_',
RedirecionaParlamentar.as_view(),
name='redireciona_parlamentar'),
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_'),
url(r'^consultas/mesa_diretora/mesa_diretora_index_html',
RedirecionaMesaDiretoraView.as_view(),
name='redireciona_mesa_diretora'),
url(r'^consultas/mesa_diretora/parlamentar/parlamentar_',
RedirecionaParlamentar.as_view(),
name='redireciona_mesa_diretora_parlamentar'),
url(r'^consultas/sessao_plenaria/',
RedirecionaSessaoPlenaria.as_view(),
name='redireciona_sessao_plenaria_'),
url(r'^generico/norma_juridica_pesquisar_',
RedirecionaNormasJuridicasList.as_view(),
name='redireciona_norma_juridica_pesquisa'),
url(r'^consultas/norma_juridica/norma_juridica_mostrar_proc',
RedirecionaNormasJuridicasDetail.as_view(),
name='redireciona_norma_juridica_detail'),
url(r'^sapl_documentos/norma_juridica/(?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_',
RedirecionaMateriaLegislativaList.as_view(),
name='redireciona_materialegislativa_list'),
url(r'historicoTramitacoes/historicoTramitacoes',
RedirecionaHistoricoTramitacoesList.as_view(),
name='redireciona_historico_tramitacoes'),
url(r'atasSessao',
RedirecionaAtasList.as_view(),
name='redireciona_atas_list'),
url(r'presencaSessao',
RedirecionaPresencaParlamentares.as_view(),
name='redireciona_presencaparlamentar_list'),
url(r'resumoPropositurasAutor',
RedirecionaMateriasPorAutor.as_view(),
name='redireciona_materias_por_autor_list'),
url(r'propositurasAnoAutorTipo',
RedirecionaMateriasPorAnoAutorTipo.as_view(),
name='redireciona_materia_por_ano_autor_tipo_list'),
]

858
sapl/redireciona_urls/views.py

@ -0,0 +1,858 @@
import logging
from django.urls 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 .exceptions import UnknownUrlNameError
EMPTY_STRING = ''
presenca_sessaoConfig = relatoriosConfig = atasConfig
app_parlamentares = parlamentaresConfig.name
app_atas = atasConfig.name
app_presenca_sessao = presenca_sessaoConfig.name
app_comissoes = comissoesConfig.name
app_materia = materiaConfig.name
app_sessao = sessaoConfig.name
app_norma = normaConfig.name
app_relatorios = relatoriosConfig.name
app_audiencia = audienciaConfig.name
pesquisar_atas = (app_atas + ':atas')
presenca_sessao = (app_presenca_sessao + ':presenca_sessao')
parlamentar_list = (app_parlamentares + ':parlamentar_list')
parlamentar_detail = (app_parlamentares + ':parlamentar_detail')
parlamentar_mesa_diretora = (app_parlamentares + ':mesa_diretora')
comissao_list = (app_comissoes + ':comissao_list')
comissao_detail = (app_comissoes + ':comissao_detail')
audiencia = (app_audiencia + ':audiencia')
reuniao_detail = (app_comissoes + ':reuniao_detail')
materialegislativa_detail = (app_materia + ':materialegislativa_detail')
materialegislativa_list = (app_materia + ':pesquisar_materia')
pauta_sessao_list = (app_sessao + ':pesquisar_pauta')
pauta_sessao_detail = (app_sessao + ':pauta_sessao_detail')
sessao_plenaria_list = (app_sessao + ':pesquisar_sessao')
sessao_plenaria_detail = (app_sessao + ':sessaoplenaria_detail')
norma_juridica_detail = (app_norma + ':normajuridica_detail')
norma_juridica_pesquisa = (app_norma + ':norma_pesquisa')
relatorios_list = (app_relatorios + ':relatorios_list')
relatorio_materia_por_tramitacao = (app_relatorios + ':materia_por_tramitacao')
relatorio_materia_por_autor = (app_relatorios + ':materia_por_autor')
relatorio_materia_por_ano_autor_tipo = (
app_relatorios + ':materia_por_ano_autor_tipo')
historico_tramitacoes = (app_relatorios + ':historico_tramitacoes')
def has_iframe(url, request):
iframe = request.GET.get(
'iframe',
EMPTY_STRING)
if iframe:
iframe_qs = ("iframe=" + iframe)
url += ("&" if "?" in url else "?")
url += iframe_qs
return url
class RedirecionaSAPLIndex(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url_pattern = 'sapl.base:sapl_index'
username = self.request.user.username
try:
self.logger.info("user=" + username + ". Tentando obter url.")
url = reverse(url_pattern)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(url_pattern)
url = has_iframe(url, self.request)
return url
class RedirecionaParlamentar(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
pk_parlamentar = self.request.GET.get(
'cod_parlamentar',
EMPTY_STRING)
username = self.request.user.username
if pk_parlamentar:
try:
kwargs = {'pk': pk_parlamentar}
self.logger.debug("user=" + username +
". Tentando obter url correspondente.")
url = reverse(parlamentar_detail, kwargs=kwargs)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(parlamentar_detail, kwargs=kwargs)
else:
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(parlamentar_list)
except NoReverseMatch:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(parlamentar_list)
numero_legislatura = self.request.GET.get(
'hdn_num_legislatura',
EMPTY_STRING)
if numero_legislatura:
args = '?pk=' + numero_legislatura
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaComissao(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
pk_comissao = self.request.GET.get('cod_comissao', EMPTY_STRING)
username = self.request.user.username
if pk_comissao:
kwargs = {'pk': pk_comissao}
try:
self.logger.debug("user=" + username +
". Tentando obter url correspondente.")
url = reverse(comissao_detail, kwargs=kwargs)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(comissao_detail)
else:
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(comissao_list)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(comissao_list)
url = has_iframe(url, self.request)
return url
class RedirecionaComposicaoComissao(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
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)
username = self.request.user.username
if pk_comissao:
kwargs = {'pk': pk_comissao}
try:
self.logger.debug("user=" + username +
". Tentando obter url correspondente.")
url = reverse(comissao_detail, kwargs=kwargs)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(comissao_detail)
else:
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(comissao_list)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(comissao_list)
url = has_iframe(url, self.request)
return url
class RedirecionaPautaSessao(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
pk_sessao_plenaria = self.request.GET.get(
'cod_sessao_plen',
EMPTY_STRING)
username = self.request.user.username
if pk_sessao_plenaria:
kwargs = {'pk': pk_sessao_plenaria}
try:
self.logger.debug("user=" + username +
". Tentando obter url correspondente.")
url = reverse(pauta_sessao_detail, kwargs=kwargs)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(pauta_sessao_detail)
else:
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(pauta_sessao_list)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(pauta_sessao_list)
data_sessao_plenaria = self.request.GET.get(
'dat_sessao_sel',
EMPTY_STRING)
if data_sessao_plenaria:
dia_s_p, mes_s_p, ano_s_p = data_sessao_plenaria.split('/')
# Remove zeros à esquerda de dia_s_p e mes_s_p
dia_s_p = dia_s_p.lstrip("0")
mes_s_p = mes_s_p.lstrip("0")
args = EMPTY_STRING
args += "?data_inicio__year=%s" % (ano_s_p)
args += "&data_inicio__month=%s" % (mes_s_p)
args += "&data_inicio__day=%s" % (dia_s_p)
args += "&tipo=&salvar=Pesquisar"
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaSessaoPlenaria(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
pk_sessao_plenaria = self.request.GET.get(
'cod_sessao_plen',
EMPTY_STRING)
url = EMPTY_STRING
username = self.request.user.username
if pk_sessao_plenaria:
kwargs = {'pk': pk_sessao_plenaria}
try:
self.logger.debug("user=" + username +
". Tentando obter url correspondente.")
url = reverse(sessao_plenaria_detail, kwargs=kwargs)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(sessao_plenaria_detail)
else:
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(sessao_plenaria_list)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(sessao_plenaria_list)
year = self.request.GET.get(
'ano_sessao_sel',
EMPTY_STRING)
month = self.request.GET.get(
'mes_sessao_sel',
EMPTY_STRING)
day = self.request.GET.get(
'dia_sessao_sel',
EMPTY_STRING)
tipo_sessao = self.request.GET.get(
'tip_sessao_sel',
EMPTY_STRING)
# Remove zeros à esquerda
day = day.lstrip("0")
month = month.lstrip("0")
args = EMPTY_STRING
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)
url = has_iframe(url, self.request)
return url
class RedirecionaRelatoriosList(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(relatorios_list)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(relatorios_list)
url = has_iframe(url, self.request)
return url
class RedirecionaRelatoriosMateriasEmTramitacaoList(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(relatorio_materia_por_tramitacao)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(relatorio_materia_por_tramitacao)
year = self.request.GET.get(
'selAno',
EMPTY_STRING)
if year:
tramitacao_tipo = self.request.GET.get(
'lst_tip_materia',
EMPTY_STRING)
tramitacao_unidade_local = self.request.GET.get(
'lst_cod_unid_tram_dest',
EMPTY_STRING)
tramitacao_status = self.request.GET.get(
'lst_status',
EMPTY_STRING)
salvar = self.request.GET.get(
'btn_materia_pesquisar',
'Pesquisar')
tramitacao_tipo = tramitacao_tipo.lstrip("0")
tramitacao_unidade_local = tramitacao_unidade_local.lstrip("0")
tramitacao_status = tramitacao_status.lstrip("0")
args = EMPTY_STRING
args += "?ano=%s" % (year)
args += "&tipo=%s" % (tramitacao_tipo)
args += "&tramitacao__unidade_tramitacao_local=%s" % (
tramitacao_unidade_local)
args += "&tramitacao__status=%s" % (tramitacao_status)
args += "&salvar=%s" % (salvar)
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaMateriaLegislativaDetail(RedirectView):
permanent = True
def get_redirect_url(self):
url = EMPTY_STRING
pk = self.request.GET.get('cod_materia', EMPTY_STRING)
if pk:
kwargs = {'pk': pk}
url = reverse(materialegislativa_detail, kwargs=kwargs)
else:
url = reverse(materialegislativa_list)
url = has_iframe(url, self.request)
return url
class RedirecionaMateriaLegislativaList(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
args = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(materialegislativa_list)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(materialegislativa_list)
tipo_materia = self.request.GET.get(
'lst_tip_materia',
EMPTY_STRING)
numero_materia = self.request.GET.get(
'txt_numero',
EMPTY_STRING)
ano_materia = self.request.GET.get(
'txt_ano',
EMPTY_STRING)
num_protocolo_materia = self.request.GET.get(
'txt_num_protocolo',
EMPTY_STRING)
periodo_inicial_apresentacao = self.request.GET.get(
'dt_apres',
EMPTY_STRING)
periodo_final_apresentacao = self.request.GET.get(
'dt_apres2',
EMPTY_STRING)
periodo_inicial_publicacao = self.request.GET.get(
'dt_public',
EMPTY_STRING)
periodo_final_publicacao = self.request.GET.get(
'dt_public2',
EMPTY_STRING)
tipo_autor = self.request.GET.get(
'lst_tip_autor',
EMPTY_STRING)
ementa_materia = self.request.GET.get(
'txt_assunto',
EMPTY_STRING)
tramitando = self.request.GET.get(
'rad_tramitando',
EMPTY_STRING)
status_tramitacao = self.request.GET.get(
'lst_status',
EMPTY_STRING)
args += "?tipo=%s" % (tipo_materia)
args += "&numero=%s" % (numero_materia)
args += "&ano=%s" % (ano_materia)
args += "&numero_protocolo=%s" % (num_protocolo_materia)
args += "&data_apresentacao_0=%s" % (periodo_inicial_apresentacao)
args += "&data_apresentacao_1=%s" % (periodo_final_apresentacao)
args += "&data_publicacao_0=%s" % (periodo_inicial_publicacao)
args += "&data_publicacao_1=%s" % (periodo_final_publicacao)
args += "&autoria__autor=%s" % (EMPTY_STRING)
args += "&autoria__autor__tipo=%s" % (tipo_autor)
args += "&relatoria__parlamentar_id=%s" % (EMPTY_STRING)
args += "&local_origem_externa=%s" % (EMPTY_STRING)
args += "&tramitacao__unidade_tramitacao_destino=%s" % (EMPTY_STRING)
args += "&tramitacao__status=%s" % (status_tramitacao)
args += "&em_tramitacao=%s" % (tramitando)
args += "&o=%s" % (EMPTY_STRING)
args += "&materiaassunto__assunto=%s" % (EMPTY_STRING)
args += "&ementa=%s" % (ementa_materia)
args += "&salvar=%s" % ('Pesquisar') # Default in both SAPL version
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaMesaDiretoraView(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(parlamentar_mesa_diretora)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(parlamentar_mesa_diretora)
url = has_iframe(url, self.request)
return url
class RedirecionaNormasJuridicasDetail(RedirectView):
permanent = True
def get_redirect_url(self):
url = EMPTY_STRING
pk_norma = self.request.GET.get('cod_norma', EMPTY_STRING)
if pk_norma:
kwargs = {'pk': pk_norma}
url = reverse(norma_juridica_detail, kwargs=kwargs)
else:
url = reverse(norma_juridica_pesquisa)
url = has_iframe(url, self.request)
return url
class RedirecionaNormasJuridicasTextoIntegral(RedirectView):
permanent = False
logger = logging.getLogger(__name__)
def get_redirect_url(self, **kwargs):
url = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug(
"user=" + username + ". Tentando obter NormaJuridica com pk={}.".format(kwargs['norma_id']))
norma = NormaJuridica.objects.get(pk=kwargs['norma_id'])
if norma:
url = norma.texto_integral.url
except Exception as e:
self.logger.error(
"user=" + username + ". Erro ao obter NormaJuridica com pk={}. ".format(kwargs['norma_id']) + str(e))
raise e
url = has_iframe(url, self.request)
return url
class RedirecionaNormasJuridicasList(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
args = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(norma_juridica_pesquisa)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(norma_juridica_pesquisa)
tipo_norma = self.request.GET.get(
'lst_tip_norma',
EMPTY_STRING)
numero_norma = self.request.GET.get(
'txt_numero',
EMPTY_STRING)
ano_norma = self.request.GET.get(
'txt_ano',
EMPTY_STRING)
periodo_inicial_aprovacao = self.request.GET.get(
'dt_norma',
EMPTY_STRING)
periodo_final_aprovacao = self.request.GET.get(
'dt_norma2',
EMPTY_STRING)
periodo_inicial_publicacao = self.request.GET.get(
'dt_public',
EMPTY_STRING)
periodo_final_publicacao = self.request.GET.get(
'dt_public2',
EMPTY_STRING)
ementa_norma = self.request.GET.get(
'txt_assunto',
EMPTY_STRING)
assuntos_norma = self.request.GET.get(
'lst_assunto_norma',
EMPTY_STRING)
args += "?tipo=%s" % (tipo_norma)
args += "&numero=%s" % (numero_norma)
args += "&ano=%s" % (ano_norma)
args += "&data_0=%s" % (periodo_inicial_aprovacao)
args += "&data_1=%s" % (periodo_final_aprovacao)
args += "&data_publicacao_0=%s" % (periodo_inicial_publicacao)
args += "&data_publicacao_1=%s" % (periodo_final_publicacao)
args += "&ementa=%s" % (ementa_norma)
args += "&assuntos=%s" % (assuntos_norma)
args += "&salvar=%s" % ('Pesquisar') # Default in both SAPL version
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaHistoricoTramitacoesList(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
args = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(historico_tramitacoes)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(historico_tramitacoes)
inicio_intervalo_data_tramitacao = self.request.GET.get(
'txt_dat_inicio_periodo',
EMPTY_STRING
).lstrip("0")
fim_intervalo_data_tramitacao = self.request.GET.get(
'txt_dat_fim_periodo',
EMPTY_STRING
).lstrip("0")
tipo_materia = self.request.GET.get(
'lst_tip_materia',
EMPTY_STRING
).lstrip("0")
unidade_local_tramitacao = self.request.GET.get(
'lst_cod_unid_tram_dest',
EMPTY_STRING
).lstrip("0")
status_tramitacao = self.request.GET.get(
'lst_status',
EMPTY_STRING
).lstrip("0")
if (
(inicio_intervalo_data_tramitacao != EMPTY_STRING) or
(fim_intervalo_data_tramitacao != EMPTY_STRING) or
(tipo_materia != EMPTY_STRING) or
(unidade_local_tramitacao != EMPTY_STRING) or
(status_tramitacao != EMPTY_STRING)):
args += "?tramitacao__data_tramitacao_0=%s" % (
inicio_intervalo_data_tramitacao)
args += "&tramitacao__data_tramitacao_1=%s" % (
fim_intervalo_data_tramitacao)
args += "&tipo=%s" % (tipo_materia)
args += "&tramitacao__unidade_tramitacao_local=%s" % (
unidade_local_tramitacao)
args += "&tramitacao__status=%s" % (status_tramitacao)
args += "&salvar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaAtasList(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
args = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(pesquisar_atas)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(pesquisar_atas)
inicio_intervalo_data_ata = self.request.GET.get(
'txt_dat_inicio',
EMPTY_STRING
).lstrip("0")
fim_intervalo_data_ata = self.request.GET.get(
'txt_dat_fim',
EMPTY_STRING
).lstrip("0")
args += "?data_inicio_0=%s" % (
inicio_intervalo_data_ata)
args += "&data_inicio_1=%s" % (
fim_intervalo_data_ata)
args += "&salvar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaPresencaParlamentares(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
args = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(presenca_sessao)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(presenca_sessao)
inicio_intervalo_data_presenca_parlamentar = self.request.GET.get(
'txt_dat_inicio',
EMPTY_STRING
).lstrip("0")
fim_intervalo_data_presenca_parlamentar = self.request.GET.get(
'txt_dat_fim',
EMPTY_STRING
).lstrip("0")
args += "?data_inicio_0=%s" % (
inicio_intervalo_data_presenca_parlamentar)
args += "&data_inicio_1=%s" % (
fim_intervalo_data_presenca_parlamentar)
args += "&salvar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaMateriasPorAutor(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(relatorio_materia_por_autor)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(relatorio_materia_por_autor)
url = has_iframe(url, self.request)
return url
class RedirecionaMateriasPorAnoAutorTipo(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
url = EMPTY_STRING
ano = self.request.GET.get('ano', '')
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(relatorio_materia_por_ano_autor_tipo)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(relatorio_materia_por_ano_autor_tipo)
if ano:
args = "?ano=%s" % (ano)
args += "&salvar=%s" % ('Pesquisar')
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url
class RedirecionaReuniao(RedirectView):
permanent = True
logger = logging.getLogger(__name__)
def get_redirect_url(self):
pk_reuniao = self.request.GET.get(
'cod_comissao',
EMPTY_STRING)
url = EMPTY_STRING
username = self.request.user.username
if pk_reuniao:
kwargs = {'pk': pk_reuniao}
try:
self.logger.debug(
"user=" + username + ". Tentando obter url correspondente (pk={}).".format(kwargs['pk']))
url = reverse(reuniao_detail, kwargs=kwargs)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(reuniao_detail)
else:
try:
self.logger.debug("user=" + username + ". Tentando obter url.")
url = reverse(reuniao_list)
except NoReverseMatch as e:
self.logger.error("user=" + username +
". Erro ao obter url. " + str(e))
raise UnknownUrlNameError(reuniao_list)
year = self.request.GET.get(
'ano_reuniao',
EMPTY_STRING)
month = self.request.GET.get(
'mes_reuniao',
EMPTY_STRING)
day = self.request.GET.get(
'dia_reuniao',
EMPTY_STRING)
tipo_reuniao = self.request.GET.get(
'tip_reuniao',
EMPTY_STRING)
# Remove zeros à esquerda
day = day.lstrip("0")
month = month.lstrip("0")
args = EMPTY_STRING
args += "?data_inicio__year=%s" % (year)
args += "&data_inicio__month=%s" % (month)
args += "&data_inicio__day=%s" % (day)
args += "&tipo=%s&salvar=Pesquisar" % (tipo_reuniao)
url = "%s%s" % (url, args)
url = has_iframe(url, self.request)
return url

1
sapl/settings.py

@ -61,6 +61,7 @@ SAPL_APPS = (
'sapl.lexml', 'sapl.lexml',
'sapl.painel', 'sapl.painel',
'sapl.protocoloadm', 'sapl.protocoloadm',
'sapl.redireciona_urls',
'sapl.compilacao', 'sapl.compilacao',
'sapl.api', 'sapl.api',
'sapl.rules' 'sapl.rules'

27
sapl/test_urls.py

@ -175,6 +175,30 @@ apps_url_patterns_prefixs_and_users = {
'/ta', '/ta',
'/sistema/ta', '/sistema/ta',
]}, ]},
'redireciona_urls': {
'prefixs': [
'/default_index_html',
'/consultas/parlamentar/parlamentar_',
'/consultas/comissao/comissao_',
'/consultas/pauta_sessao/pauta_sessao_',
'/consultas/sessao_plenaria/',
'/relatorios_administrativos/'
'relatorios_administrativos_index_html',
'/tramitacaoMaterias/tramitacaoMaterias',
'/tramitacaoMaterias/materia_mostrar_proc',
'/generico/materia_pesquisar_',
'/consultas/mesa_diretora/mesa_diretora_index_html',
'/consultas/mesa_diretora/parlamentar/parlamentar_',
'/generico/norma_juridica_pesquisar_',
'/consultas/norma_juridica/norma_juridica_mostrar_proc',
'/historicoTramitacoes/historicoTramitacoes',
'/atasSessao',
'/presencaSessao',
'/resumoPropositurasAutor',
'/propositurasAnoAutorTipo',
]},
'lexml': { 'lexml': {
'prefixs': [ 'prefixs': [
'/lexml', '/lexml',
@ -274,6 +298,9 @@ def test_urlpatterns(url_item, admin_client):
Os prefixos permitidos são: Os prefixos permitidos são:
%s %s
""" % (url, app_name, prefixs) """ % (url, app_name, prefixs)
else:
# ignorando app de redirecionamento de urls no padrão do SAPL 2.5
pass
urls_publicas_excecoes = { urls_publicas_excecoes = {

3
sapl/urls.py

@ -32,6 +32,7 @@ import sapl.norma.urls
import sapl.painel.urls import sapl.painel.urls
import sapl.parlamentares.urls import sapl.parlamentares.urls
import sapl.protocoloadm.urls import sapl.protocoloadm.urls
import sapl.redireciona_urls.urls
import sapl.relatorios.urls import sapl.relatorios.urls
import sapl.sessao.urls import sapl.sessao.urls
@ -63,6 +64,8 @@ urlpatterns += [
url(r'^favicon\.ico$', RedirectView.as_view( url(r'^favicon\.ico$', RedirectView.as_view(
url='/static/sapl/img/favicon.ico', permanent=True)), url='/static/sapl/img/favicon.ico', permanent=True)),
url(r'', include(sapl.redireciona_urls.urls)),
path("robots.txt", TemplateView.as_view( path("robots.txt", TemplateView.as_view(
template_name="robots.txt", content_type="text/plain")), template_name="robots.txt", content_type="text/plain")),

Loading…
Cancel
Save