diff --git a/sapl/redireciona_urls/tests.py b/sapl/redireciona_urls/tests.py index ee8b84d87..7ad2310ab 100644 --- a/sapl/redireciona_urls/tests.py +++ b/sapl/redireciona_urls/tests.py @@ -158,6 +158,180 @@ class RedirecionaMesaDiretoraParlamentarTests(TestCase): 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 = '' + numero_norma = '' + ano_norma = '' + periodo_inicial_aprovacao = '' + periodo_final_aprovacao = '' + periodo_inicial_publicacao = '' + periodo_final_publicacao = '' + ementa_norma = '' + assuntos_norma = '' + + args = '' + 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 = '' + 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, 301) + 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 = '' + ano_norma = '' + periodo_inicial_aprovacao = '' + periodo_final_aprovacao = '' + periodo_inicial_publicacao = '' + periodo_final_publicacao = '' + ementa_norma = '' + assuntos_norma = '' + + args = '' + 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 = '' + 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, 301) + 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 = '' + numero_norma = '' + ano_norma = '2010' + periodo_inicial_aprovacao = '' + periodo_final_aprovacao = '' + periodo_inicial_publicacao = '' + periodo_final_publicacao = '' + ementa_norma = '' + assuntos_norma = '' + + args = '' + 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 = '' + 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, 301) + 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 = '' + 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, 301) + self.assertEqual(response.url, url_e) + + def test_redireciona_norma_juridica_detail_sem_parametros(self): + url = reverse(self.url_pattern) + + pk_norma = '' + + args = '' + 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, 301) + self.assertEqual(response.url, url_e) + + class RedirecionaSessaoPlenariaTests(TestCase): url_pattern = 'sapl.redireciona_urls:redireciona_sessao_plenaria_' diff --git a/sapl/redireciona_urls/urls.py b/sapl/redireciona_urls/urls.py index 04887a171..4af22e6f1 100644 --- a/sapl/redireciona_urls/urls.py +++ b/sapl/redireciona_urls/urls.py @@ -3,6 +3,8 @@ from .views import ( RedirecionaMateriaLegislativaDetail, RedirecionaMateriaLegislativaList, RedirecionaMesaDiretoraView, + RedirecionaNormasJuridicasDetail, + RedirecionaNormasJuridicasList, RedirecionaParlamentar, RedirecionaPautaSessao, RedirecionaRelatoriosList, @@ -38,6 +40,12 @@ urlpatterns = [ 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'^relatorios_administrativos/relatorios_administrativos_index_html$', RedirecionaRelatoriosList.as_view(), name='redireciona_relatorios_list'), diff --git a/sapl/redireciona_urls/views.py b/sapl/redireciona_urls/views.py index c2cf8a611..11469c9c6 100644 --- a/sapl/redireciona_urls/views.py +++ b/sapl/redireciona_urls/views.py @@ -1,18 +1,19 @@ from .exceptions import UnknownUrlNameError - from django.core.urlresolvers import NoReverseMatch, reverse from django.views.generic import RedirectView - -from sapl.parlamentares.apps import AppConfig as parlamentaresConfig +from sapl.base.apps import AppConfig as relatoriosConfig 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.parlamentares.apps import AppConfig as parlamentaresConfig from sapl.sessao.apps import AppConfig as sessaoConfig -from sapl.base.apps import AppConfig as relatoriosConfig + app_parlamentares = parlamentaresConfig.name app_comissoes = comissoesConfig.name app_materia = materiaConfig.name app_sessao = sessaoConfig.name +app_norma = normaConfig.name app_relatorios = relatoriosConfig.name parlamentar_list = ( app_parlamentares + ':parlamentar_list') @@ -31,6 +32,9 @@ 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') @@ -288,3 +292,72 @@ class RedirecionaMesaDiretoraView(RedirectView): raise UnknownUrlNameError(parlamentar_mesa_diretora) return url + + +class RedirecionaNormasJuridicasDetail(RedirectView): + permanent = True + + def get_redirect_url(self): + pk_norma = self.request.GET.get('cod_norma', '') + + if pk_norma: + kwargs = {'pk': pk_norma} + return reverse(norma_juridica_detail, kwargs=kwargs) + else: + return reverse(norma_juridica_pesquisa) + +class RedirecionaNormasJuridicasList(RedirectView): + + permanent = True + + def get_redirect_url(self): + empty_string = '' + url = empty_string + args = empty_string + try: + url = reverse(norma_juridica_pesquisa) + except NoReverseMatch: + 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) + + return url diff --git a/sapl/test_urls.py b/sapl/test_urls.py index 733103616..b980e0c4e 100644 --- a/sapl/test_urls.py +++ b/sapl/test_urls.py @@ -185,6 +185,8 @@ apps_url_patterns_prefixs_and_users = { '/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', ]}, 'lexml': { 'prefixs': [