mirror of https://github.com/interlegis/sapl.git
Rogério Frá
8 years ago
committed by
GitHub
154 changed files with 5949 additions and 2063 deletions
@ -0,0 +1,24 @@ |
|||||
|
engines: |
||||
|
eslint: |
||||
|
enabled: false |
||||
|
csslint: |
||||
|
enabled: false |
||||
|
duplication: |
||||
|
enabled: true |
||||
|
config: |
||||
|
languages: |
||||
|
- python |
||||
|
- javascript |
||||
|
fixme: |
||||
|
enabled: true |
||||
|
radon: |
||||
|
enabled: true |
||||
|
ratings: |
||||
|
paths: |
||||
|
- "**.py" |
||||
|
- "**.js" |
||||
|
exclude_paths: |
||||
|
- sapl/**/migrations/* |
||||
|
- sapl/**/legacy/* |
||||
|
- sapl/relatorios/ |
||||
|
- sapl/templates/* |
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.12 on 2017-05-19 11:06 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('base', '0002_auto_20170331_1900'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='autor', |
||||
|
name='nome', |
||||
|
field=models.CharField(blank=True, max_length=60, verbose_name='Nome do Autor'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,24 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.12 on 2017-07-14 18:38 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('base', '0003_auto_20170519_1106'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.RemoveField( |
||||
|
model_name='problemamigracao', |
||||
|
name='eh_importante', |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='problemamigracao', |
||||
|
name='critico', |
||||
|
field=models.BooleanField(default=False, verbose_name='Crítico'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,146 @@ |
|||||
|
#!/usr/bin/python |
||||
|
|
||||
|
# requisito: pip install PyMySQL |
||||
|
|
||||
|
import pymysql.cursors |
||||
|
|
||||
|
HOST = 'localhost' |
||||
|
USER = 'root' |
||||
|
PASSWORD = '' |
||||
|
DB = '' |
||||
|
|
||||
|
|
||||
|
SELECT_EXCLUIDOS = "SELECT %s FROM %s WHERE ind_excluido = 1 ORDER BY %s" |
||||
|
|
||||
|
REGISTROS_INCONSISTENTES = "DELETE FROM %s WHERE %s in (%s) AND ind_excluido = 0 " |
||||
|
|
||||
|
EXCLUI_REGISTRO = "DELETE FROM %s WHERE ind_excluido=1" |
||||
|
|
||||
|
NORMA_DEP = "DELETE FROM vinculo_norma_juridica WHERE cod_norma_referente in (%s) OR \ |
||||
|
cod_norma_referida in (%s) AND ind_excluido = 0 " |
||||
|
|
||||
|
mapa = {} # mapa com tabela principal -> tabelas dependentes |
||||
|
|
||||
|
mapa['tipo_autor'] = ['autor'] |
||||
|
mapa['materia_legislativa'] = ['acomp_materia', 'autoria', 'despacho_inicial', |
||||
|
'documento_acessorio', 'expediente_materia', |
||||
|
'legislacao_citada', 'materia_assunto', |
||||
|
'numeracao', 'ordem_dia', 'parecer', |
||||
|
'proposicao', 'registro_votacao', |
||||
|
'relatoria', 'tramitacao'] |
||||
|
mapa['norma_juridica'] = ['vinculo_norma_juridica'] |
||||
|
mapa['comissao'] = ['composicao_comissao'] |
||||
|
mapa['sessao_legislativa'] = ['composicao_mesa'] |
||||
|
mapa['tipo_expediente'] = ['expediente_sessao_plenaria'] |
||||
|
|
||||
|
""" |
||||
|
mapa['autor'] = ['tipo_autor', 'partido', 'comissao', 'parlamentar'] |
||||
|
mapa['parlamentar'] = ['autor', 'autoria', 'composicao_comissao', |
||||
|
'composicao_mesa', 'dependente', 'filiacao', |
||||
|
'mandato', 'mesa_sessao_plenaria', 'oradores', |
||||
|
'oradores_expediente', 'ordem_dia_presenca', |
||||
|
'registro_votacao_parlamentar', 'relatoria', |
||||
|
'sessao_plenaria_presenca', 'unidade_tramitacao'] |
||||
|
""" |
||||
|
|
||||
|
def get_ids_excluidos(cursor, query): |
||||
|
""" |
||||
|
recupera as PKs de registros com ind_excluido = 1 da tabela principal |
||||
|
""" |
||||
|
cursor.execute(query) |
||||
|
excluidos = cursor.fetchall() |
||||
|
# flat tuple of tuples with map transformation into string |
||||
|
excluidos = [str(val) for sublist in excluidos for val in sublist] |
||||
|
return excluidos |
||||
|
|
||||
|
|
||||
|
def remove_tabelas(cursor, tabela_principal, pk, query_dependentes=None): |
||||
|
|
||||
|
QUERY = SELECT_EXCLUIDOS % (pk, tabela_principal, pk) |
||||
|
ids_excluidos = get_ids_excluidos(cursor, QUERY) |
||||
|
print("\nRegistros da tabela '%s' com ind_excluido = 1: %s" % (tabela_principal.upper(), len(ids_excluidos))) |
||||
|
|
||||
|
""" |
||||
|
Remove registros de tabelas que dependem da tabela principal, |
||||
|
e que se encontram com ind_excluido = 0 (nao excluidas), se |
||||
|
tais registros existirem. |
||||
|
""" |
||||
|
if ids_excluidos: |
||||
|
print("Dependencias inconsistentes") |
||||
|
for tabela in mapa[tabela_principal]: |
||||
|
|
||||
|
QUERY_DEP = REGISTROS_INCONSISTENTES % (tabela, pk, ','.join(ids_excluidos)) |
||||
|
|
||||
|
# Trata caso especifico de norma_juridica |
||||
|
if query_dependentes: |
||||
|
QUERY_DEP = query_dependentes % (','.join(ids_excluidos), |
||||
|
','.join(ids_excluidos)) |
||||
|
|
||||
|
print(tabela.upper(), cursor.execute(QUERY_DEP)) |
||||
|
|
||||
|
""" |
||||
|
Remove todos os registros com ind_excluido = 1 das tabelas |
||||
|
dependentes e da tabela principal, nesta ordem. |
||||
|
""" |
||||
|
print("\n\nRegistros com ind_excluido = 1") |
||||
|
for tabela in mapa[tabela_principal] + [tabela_principal]: |
||||
|
QUERY = EXCLUI_REGISTRO % tabela |
||||
|
print(tabela.upper(), cursor.execute(QUERY)) |
||||
|
|
||||
|
|
||||
|
def remove_excluidas(cursor): |
||||
|
cursor.execute("SHOW_TABLES") |
||||
|
for row in cursor.fetchall(): |
||||
|
print(row) |
||||
|
|
||||
|
|
||||
|
def remove_proposicao_invalida(cursor): |
||||
|
return cursor.execute( |
||||
|
"DELETE FROM proposicao WHERE cod_mat_ou_doc is null") |
||||
|
|
||||
|
|
||||
|
def remove_materia_assunto_invalida(cursor): |
||||
|
return cursor.execute( |
||||
|
"DELETE FROM materia_assunto WHERE cod_assunto = 0") |
||||
|
|
||||
|
|
||||
|
def shotgun_remove(cursor): |
||||
|
for tabela in get_ids_excluidos(cursor, "SHOW TABLES"): |
||||
|
try: |
||||
|
cursor.execute("DELETE FROM %s WHERE ind_excluido = 1" % tabela) |
||||
|
except: |
||||
|
pass |
||||
|
|
||||
|
|
||||
|
if __name__ == '__main__': |
||||
|
connection = pymysql.connect(host=HOST, |
||||
|
user=USER, |
||||
|
password=PASSWORD, |
||||
|
db=DB) |
||||
|
cursor = connection.cursor() |
||||
|
# TIPO AUTOR |
||||
|
remove_tabelas(cursor, 'tipo_autor', 'tip_autor') |
||||
|
# MATERIA LEGISLATIVA |
||||
|
remove_tabelas(cursor, 'materia_legislativa', 'cod_materia') |
||||
|
# NORMA JURIDICA |
||||
|
remove_tabelas(cursor, 'norma_juridica', 'cod_norma', NORMA_DEP) |
||||
|
# COMISSAO |
||||
|
remove_tabelas(cursor, 'comissao', 'cod_comissao') |
||||
|
# SESSAO LEGISLATIVA |
||||
|
remove_tabelas(cursor, 'sessao_legislativa', 'cod_sessao_leg') |
||||
|
# EXPEDIENTE SESSAO |
||||
|
remove_tabelas(cursor, 'tipo_expediente', 'cod_expediente') |
||||
|
# AUTOR |
||||
|
remove_tabelas(cursor, 'autor', 'cod_autor') |
||||
|
# PARLAMENTAR |
||||
|
remove_tabelas(cursor, 'parlamentar', 'cod_parlamentar') |
||||
|
|
||||
|
# PROPOSICAO |
||||
|
remove_proposicao_invalida(cursor) |
||||
|
|
||||
|
# MATERIA_ASSUNTO |
||||
|
remove_materia_assunto_invalida(cursor) |
||||
|
|
||||
|
# shotgun_remove(cursor) |
||||
|
|
||||
|
cursor.close() |
@ -0,0 +1,211 @@ |
|||||
|
from datetime import datetime |
||||
|
|
||||
|
from django.core.mail import EmailMultiAlternatives, get_connection, send_mail |
||||
|
from django.core.urlresolvers import reverse |
||||
|
from django.template import Context, loader |
||||
|
|
||||
|
from sapl.base.models import CasaLegislativa |
||||
|
from sapl.settings import EMAIL_SEND_USER |
||||
|
|
||||
|
from .models import AcompanhamentoMateria |
||||
|
|
||||
|
|
||||
|
def load_email_templates(templates, context={}): |
||||
|
|
||||
|
emails = [] |
||||
|
for t in templates: |
||||
|
tpl = loader.get_template(t) |
||||
|
email = tpl.render(Context(context)) |
||||
|
if t.endswith(".html"): |
||||
|
email = email.replace('\n', '').replace('\r', '') |
||||
|
emails.append(email) |
||||
|
return emails |
||||
|
|
||||
|
|
||||
|
def enviar_emails(sender, recipients, messages): |
||||
|
''' |
||||
|
Recipients is a string list of email addresses |
||||
|
|
||||
|
Messages is an array of dicts of the form: |
||||
|
{'recipient': 'address', # useless???? |
||||
|
'subject': 'subject text', |
||||
|
'txt_message': 'text message', |
||||
|
'html_message': 'html message' |
||||
|
} |
||||
|
''' |
||||
|
|
||||
|
if len(messages) == 1: |
||||
|
# sends an email simultaneously to all recipients |
||||
|
send_mail(messages[0]['subject'], |
||||
|
messages[0]['txt_message'], |
||||
|
sender, |
||||
|
recipients, |
||||
|
html_message=messages[0]['html_message'], |
||||
|
fail_silently=False) |
||||
|
|
||||
|
elif len(recipients) > len(messages): |
||||
|
raise ValueError("Message list should have size 1 \ |
||||
|
or equal recipient list size. \ |
||||
|
recipients: %s, messages: %s" % (recipients, messages) |
||||
|
) |
||||
|
|
||||
|
else: |
||||
|
# sends an email simultaneously to all reciepients |
||||
|
for (d, m) in zip(recipients, messages): |
||||
|
send_mail(m['subject'], |
||||
|
m['txt_message'], |
||||
|
sender, |
||||
|
[d], |
||||
|
html_message=m['html_message'], |
||||
|
fail_silently=False) |
||||
|
|
||||
|
|
||||
|
def criar_email_confirmacao(base_url, casa_legislativa, materia, hash_txt=''): |
||||
|
|
||||
|
if not casa_legislativa: |
||||
|
raise ValueError("Casa Legislativa é obrigatória") |
||||
|
|
||||
|
if not materia: |
||||
|
raise ValueError("Matéria é obrigatória") |
||||
|
|
||||
|
# FIXME i18n |
||||
|
casa_nome = (casa_legislativa.nome + ' de ' + |
||||
|
casa_legislativa.municipio + '-' + |
||||
|
casa_legislativa.uf) |
||||
|
|
||||
|
materia_url = reverse('sapl.materia:materialegislativa_detail', |
||||
|
kwargs={'pk': materia.id}) |
||||
|
confirmacao_url = reverse('sapl.materia:acompanhar_confirmar', |
||||
|
kwargs={'pk': materia.id}) |
||||
|
|
||||
|
autores = [] |
||||
|
for autoria in materia.autoria_set.all(): |
||||
|
autores.append(autoria.autor.nome) |
||||
|
|
||||
|
templates = load_email_templates(['email/acompanhar.txt', |
||||
|
'email/acompanhar.html'], |
||||
|
{"casa_legislativa": casa_nome, |
||||
|
"logotipo": casa_legislativa.logotipo, |
||||
|
"descricao_materia": materia.ementa, |
||||
|
"autoria": autores, |
||||
|
"hash_txt": hash_txt, |
||||
|
"base_url": base_url, |
||||
|
"materia": str(materia), |
||||
|
"materia_url": materia_url, |
||||
|
"confirmacao_url": confirmacao_url, }) |
||||
|
return templates |
||||
|
|
||||
|
|
||||
|
def do_envia_email_confirmacao(base_url, casa, materia, destinatario): |
||||
|
# |
||||
|
# Envia email de confirmacao para atualizações de tramitação |
||||
|
# |
||||
|
|
||||
|
sender = EMAIL_SEND_USER |
||||
|
# FIXME i18n |
||||
|
subject = "[SAPL] " + str(materia) + " - Ative o Acompanhamento da Materia" |
||||
|
messages = [] |
||||
|
recipients = [] |
||||
|
|
||||
|
email_texts = criar_email_confirmacao(base_url, |
||||
|
casa, |
||||
|
materia, |
||||
|
destinatario.hash,) |
||||
|
recipients.append(destinatario.email) |
||||
|
messages.append({ |
||||
|
'recipient': destinatario.email, |
||||
|
'subject': subject, |
||||
|
'txt_message': email_texts[0], |
||||
|
'html_message': email_texts[1] |
||||
|
}) |
||||
|
|
||||
|
enviar_emails(sender, recipients, messages) |
||||
|
|
||||
|
|
||||
|
def criar_email_tramitacao(base_url, casa_legislativa, materia, status, |
||||
|
unidade_destino, hash_txt=''): |
||||
|
|
||||
|
if not casa_legislativa: |
||||
|
raise ValueError("Casa Legislativa é obrigatória") |
||||
|
|
||||
|
if not materia: |
||||
|
raise ValueError("Matéria é obrigatória") |
||||
|
|
||||
|
# FIXME i18n |
||||
|
casa_nome = (casa_legislativa.nome + ' de ' + |
||||
|
casa_legislativa.municipio + '-' + |
||||
|
casa_legislativa.uf) |
||||
|
|
||||
|
url_materia = reverse('sapl.materia:tramitacao_list', |
||||
|
kwargs={'pk': materia.id}) |
||||
|
url_excluir = reverse('sapl.materia:acompanhar_excluir', |
||||
|
kwargs={'pk': materia.id}) |
||||
|
|
||||
|
autores = [] |
||||
|
for autoria in materia.autoria_set.all(): |
||||
|
autores.append(autoria.autor.nome) |
||||
|
|
||||
|
tramitacao = materia.tramitacao_set.last() |
||||
|
|
||||
|
templates = load_email_templates(['email/tramitacao.txt', |
||||
|
'email/tramitacao.html'], |
||||
|
{"casa_legislativa": casa_nome, |
||||
|
"data_registro": datetime.now().strftime( |
||||
|
"%d/%m/%Y"), |
||||
|
"cod_materia": materia.id, |
||||
|
"logotipo": casa_legislativa.logotipo, |
||||
|
"descricao_materia": materia.ementa, |
||||
|
"autoria": autores, |
||||
|
"data": tramitacao.data_tramitacao, |
||||
|
"status": status, |
||||
|
"localizacao": unidade_destino, |
||||
|
"texto_acao": tramitacao.texto, |
||||
|
"hash_txt": hash_txt, |
||||
|
"materia": str(materia), |
||||
|
"base_url": base_url, |
||||
|
"materia_url": url_materia, |
||||
|
"excluir_url": url_excluir}) |
||||
|
return templates |
||||
|
|
||||
|
|
||||
|
def do_envia_email_tramitacao(base_url, materia, status, unidade_destino): |
||||
|
# |
||||
|
# Envia email de tramitacao para usuarios cadastrados |
||||
|
# |
||||
|
destinatarios = AcompanhamentoMateria.objects.filter(materia=materia, |
||||
|
confirmado=True) |
||||
|
casa = CasaLegislativa.objects.first() |
||||
|
|
||||
|
sender = EMAIL_SEND_USER |
||||
|
# FIXME i18n |
||||
|
subject = "[SAPL] " + str(materia) + \ |
||||
|
" - Acompanhamento de Materia Legislativa" |
||||
|
|
||||
|
connection = get_connection() |
||||
|
connection.open() |
||||
|
|
||||
|
for destinatario in destinatarios: |
||||
|
try: |
||||
|
email_texts = criar_email_tramitacao(base_url, |
||||
|
casa, |
||||
|
materia, |
||||
|
status, |
||||
|
unidade_destino, |
||||
|
destinatario.hash,) |
||||
|
|
||||
|
email = EmailMultiAlternatives( |
||||
|
subject, |
||||
|
email_texts[0], |
||||
|
sender, |
||||
|
[destinatario.email], |
||||
|
connection=connection) |
||||
|
email.attach_alternative(email_texts[1], "text/html") |
||||
|
email.send() |
||||
|
|
||||
|
# Garantia de que, mesmo com o lançamento de qualquer exceção, |
||||
|
# a conexão será fechada |
||||
|
except Exception: |
||||
|
connection.close() |
||||
|
raise Exception('Erro ao enviar e-mail de acompanhamento de matéria.') |
||||
|
|
||||
|
connection.close() |
@ -0,0 +1,32 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-22 10:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.materia.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0004_auto_20170504_1751'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='documentoacessorio', |
||||
|
name='arquivo', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.anexo_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='materialegislativa', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='proposicao', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,32 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.12 on 2017-05-22 19:04 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.materia.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0004_auto_20170504_1751'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='documentoacessorio', |
||||
|
name='arquivo', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.anexo_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='materialegislativa', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='proposicao', |
||||
|
name='texto_original', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.materia.models.materia_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Original'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,16 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-23 18:20 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0005_auto_20170522_1051'), |
||||
|
('materia', '0005_auto_20170522_1904'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
] |
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.13 on 2017-06-20 12:52 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0006_merge'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='tipoproposicao', |
||||
|
name='descricao', |
||||
|
field=models.CharField(error_messages={'unique': 'Já existe um Tipo de Proposição com esta descrição.'}, max_length=50, unique=True, verbose_name='Descrição'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,21 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.11 on 2017-06-22 15:27 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0007_auto_20170620_1252'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='acompanhamentomateria', |
||||
|
name='materia', |
||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='materia.MateriaLegislativa'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,25 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.11 on 2017-07-12 09:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('materia', '0008_auto_20170622_1527'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='documentoacessorio', |
||||
|
name='data_ultima_atualizacao', |
||||
|
field=models.DateTimeField(auto_now=True, null=True, verbose_name='Data'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='materialegislativa', |
||||
|
name='data_ultima_atualizacao', |
||||
|
field=models.DateTimeField(auto_now=True, null=True, verbose_name='Data'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,19 @@ |
|||||
|
from django.dispatch import receiver |
||||
|
|
||||
|
from sapl.materia.signals import tramitacao_signal |
||||
|
from sapl.utils import get_base_url |
||||
|
|
||||
|
from .email_utils import do_envia_email_tramitacao |
||||
|
|
||||
|
|
||||
|
@receiver(tramitacao_signal) |
||||
|
def handle_tramitacao_signal(sender, **kwargs): |
||||
|
tramitacao = kwargs.get("post") |
||||
|
request = kwargs.get("request") |
||||
|
materia = tramitacao.materia |
||||
|
|
||||
|
do_envia_email_tramitacao( |
||||
|
get_base_url(request), |
||||
|
materia, |
||||
|
tramitacao.status, |
||||
|
tramitacao.unidade_tramitacao_destino) |
@ -1,10 +1,8 @@ |
|||||
from django.db.models.signals import post_delete, post_save |
from django.db.models.signals import post_delete, post_save |
||||
from sapl.utils import save_texto, delete_texto |
|
||||
|
import django.dispatch |
||||
|
|
||||
from .models import DocumentoAcessorio, MateriaLegislativa |
from .models import DocumentoAcessorio, MateriaLegislativa |
||||
|
|
||||
|
|
||||
post_save.connect(save_texto, sender=MateriaLegislativa) |
tramitacao_signal = django.dispatch.Signal(providing_args=['post', 'request']) |
||||
post_save.connect(save_texto, sender=DocumentoAcessorio) |
|
||||
post_delete.connect(delete_texto, sender=MateriaLegislativa) |
|
||||
post_delete.connect(delete_texto, sender=DocumentoAcessorio) |
|
||||
|
@ -0,0 +1,22 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-22 10:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.norma.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0003_auto_20170510_1549'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='normajuridica', |
||||
|
name='texto_integral', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.norma.models.norma_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,27 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.12 on 2017-05-22 11:15 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import sapl.norma.models |
||||
|
import sapl.utils |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0003_auto_20170510_1549'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='normajuridica', |
||||
|
name='texto_integral', |
||||
|
field=models.FileField(blank=True, null=True, upload_to=sapl.norma.models.norma_upload_path, validators=[sapl.utils.restringe_tipos_de_arquivo_txt], verbose_name='Texto Integral'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='normajuridica', |
||||
|
name='timestamp', |
||||
|
field=models.DateTimeField(null=True), |
||||
|
), |
||||
|
] |
@ -0,0 +1,16 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-23 18:20 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0004_auto_20170522_1115'), |
||||
|
('norma', '0004_auto_20170522_1051'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
] |
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.11 on 2017-07-12 09:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('norma', '0005_merge'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='normajuridica', |
||||
|
name='data_ultima_atualizacao', |
||||
|
field=models.DateTimeField(auto_now=True, null=True, verbose_name='Data'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,27 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-07-07 16:56 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
import datetime |
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('parlamentares', '0002_auto_20170504_1751'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='mandato', |
||||
|
name='data_inicio_mandato', |
||||
|
field=models.DateField(default=datetime.datetime(2017, 7, 7, 16, 56, 58, 525896), verbose_name='Início do Mandato'), |
||||
|
preserve_default=False, |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='mandato', |
||||
|
name='data_fim_mandato', |
||||
|
field=models.DateField(blank=True, null=True, verbose_name='Fim do Mandato'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-07-11 13:05 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('parlamentares', '0003_auto_20170707_1656'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='mandato', |
||||
|
name='data_inicio_mandato', |
||||
|
field=models.DateField(blank=True, null=True, verbose_name='Início do Mandato'), |
||||
|
), |
||||
|
] |
@ -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') |
@ -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.")) |
@ -0,0 +1,710 @@ |
|||||
|
from django.core.urlresolvers import reverse |
||||
|
from django.test import TestCase |
||||
|
|
||||
|
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_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) |
@ -0,0 +1,80 @@ |
|||||
|
from .apps import AppConfig |
||||
|
from .views import ( |
||||
|
RedirecionaAtasList, |
||||
|
RedirecionaComissao, |
||||
|
RedirecionaHistoricoTramitacoesList, |
||||
|
RedirecionaMateriaLegislativaDetail, |
||||
|
RedirecionaMateriaLegislativaList, |
||||
|
RedirecionaMateriasPorAnoAutorTipo, |
||||
|
RedirecionaMateriasPorAutor, |
||||
|
RedirecionaMesaDiretoraView, |
||||
|
RedirecionaNormasJuridicasDetail, |
||||
|
RedirecionaNormasJuridicasList, |
||||
|
RedirecionaParlamentar, |
||||
|
RedirecionaPautaSessao, |
||||
|
RedirecionaPresencaParlamentares, |
||||
|
RedirecionaRelatoriosList, |
||||
|
RedirecionaRelatoriosMateriasEmTramitacaoList, |
||||
|
RedirecionaSessaoPlenaria, |
||||
|
RedirecionaSAPLIndex) |
||||
|
from django.conf.urls import url |
||||
|
|
||||
|
|
||||
|
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/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'^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'), |
||||
|
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'), |
||||
|
] |
@ -0,0 +1,577 @@ |
|||||
|
from .exceptions import UnknownUrlNameError |
||||
|
from django.core.urlresolvers import NoReverseMatch, reverse |
||||
|
from django.views.generic import RedirectView |
||||
|
from sapl.base.apps import AppConfig as atasConfig |
||||
|
from sapl.base.apps import AppConfig as presenca_sessaoConfig |
||||
|
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 |
||||
|
|
||||
|
EMPTY_STRING = '' |
||||
|
|
||||
|
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 |
||||
|
|
||||
|
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') |
||||
|
|
||||
|
|
||||
|
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') |
||||
|
|
||||
|
|
||||
|
class RedirecionaSAPLIndex(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url_pattern = 'sapl_index' |
||||
|
try: |
||||
|
url = reverse(url_pattern) |
||||
|
except NoReverseMatch: |
||||
|
raise UnknownUrlNameError(url_pattern) |
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaParlamentar(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
pk_parlamentar = self.request.GET.get( |
||||
|
'cod_parlamentar', |
||||
|
EMPTY_STRING) |
||||
|
|
||||
|
if pk_parlamentar: |
||||
|
try: |
||||
|
kwargs = {'pk': pk_parlamentar} |
||||
|
url = reverse(parlamentar_detail, kwargs=kwargs) |
||||
|
except NoReverseMatch: |
||||
|
raise UnknownUrlNameError(parlamentar_detail, kwargs=kwargs) |
||||
|
else: |
||||
|
try: |
||||
|
url = reverse(parlamentar_list) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaComissao(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = 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) |
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaPautaSessao(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
pk_sessao_plenaria = self.request.GET.get( |
||||
|
'cod_sessao_plen', |
||||
|
EMPTY_STRING) |
||||
|
|
||||
|
if pk_sessao_plenaria: |
||||
|
kwargs = {'pk': pk_sessao_plenaria} |
||||
|
try: |
||||
|
url = reverse(pauta_sessao_detail, kwargs=kwargs) |
||||
|
except NoReverseMatch: |
||||
|
raise UnknownUrlNameError(pauta_sessao_detail) |
||||
|
else: |
||||
|
try: |
||||
|
url = reverse(pauta_sessao_list) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaSessaoPlenaria(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
pk_sessao_plenaria = self.request.GET.get( |
||||
|
'cod_sessao_plen', |
||||
|
EMPTY_STRING) |
||||
|
url = EMPTY_STRING |
||||
|
if pk_sessao_plenaria: |
||||
|
kwargs = {'pk': pk_sessao_plenaria} |
||||
|
try: |
||||
|
url = reverse(sessao_plenaria_detail, kwargs=kwargs) |
||||
|
except NoReverseMatch: |
||||
|
raise UnknownUrlNameError(sessao_plenaria_detail) |
||||
|
|
||||
|
else: |
||||
|
try: |
||||
|
url = reverse(sessao_plenaria_list) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaRelatoriosList(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
try: |
||||
|
url = reverse(relatorios_list) |
||||
|
except NoReverseMatch: |
||||
|
raise UnknownUrlNameError(relatorios_list) |
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaRelatoriosMateriasEmTramitacaoList(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
try: |
||||
|
url = reverse(relatorio_materia_por_tramitacao) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaMateriaLegislativaDetail(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
pk = self.request.GET.get('cod_materia', EMPTY_STRING) |
||||
|
|
||||
|
if pk: |
||||
|
kwargs = {'pk': pk} |
||||
|
return reverse(materialegislativa_detail, kwargs=kwargs) |
||||
|
else: |
||||
|
return reverse(materialegislativa_list) |
||||
|
|
||||
|
|
||||
|
class RedirecionaMateriaLegislativaList(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
args = EMPTY_STRING |
||||
|
try: |
||||
|
url = reverse(materialegislativa_list) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaMesaDiretoraView(RedirectView): |
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
try: |
||||
|
url = reverse(parlamentar_mesa_diretora) |
||||
|
except NoReverseMatch: |
||||
|
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', EMPTY_STRING) |
||||
|
|
||||
|
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): |
||||
|
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 |
||||
|
|
||||
|
|
||||
|
class RedirecionaHistoricoTramitacoesList(RedirectView): |
||||
|
|
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
args = EMPTY_STRING |
||||
|
try: |
||||
|
url = reverse(historico_tramitacoes) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaAtasList(RedirectView): |
||||
|
|
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
args = EMPTY_STRING |
||||
|
try: |
||||
|
url = reverse(pesquisar_atas) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaPresencaParlamentares(RedirectView): |
||||
|
|
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
args = EMPTY_STRING |
||||
|
try: |
||||
|
url = reverse(presenca_sessao) |
||||
|
except NoReverseMatch: |
||||
|
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) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaMateriasPorAutor(RedirectView): |
||||
|
|
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
try: |
||||
|
url = reverse(relatorio_materia_por_autor) |
||||
|
except NoReverseMatch: |
||||
|
raise UnknownUrlNameError(relatorio_materia_por_autor) |
||||
|
|
||||
|
return url |
||||
|
|
||||
|
|
||||
|
class RedirecionaMateriasPorAnoAutorTipo(RedirectView): |
||||
|
|
||||
|
permanent = True |
||||
|
|
||||
|
def get_redirect_url(self): |
||||
|
url = EMPTY_STRING |
||||
|
ano = self.request.GET.get('ano', '') |
||||
|
|
||||
|
try: |
||||
|
url = reverse(relatorio_materia_por_ano_autor_tipo) |
||||
|
except NoReverseMatch: |
||||
|
raise UnknownUrlNameError(relatorio_materia_por_ano_autor_tipo) |
||||
|
|
||||
|
if ano: |
||||
|
args = "?ano=%s" % (ano) |
||||
|
args += "&salvar=%s" % ('Pesquisar') |
||||
|
url = "%s%s" % (url, args) |
||||
|
|
||||
|
return url |
@ -0,0 +1,35 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-05-22 10:51 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0002_sessaoplenaria_interativa'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.CreateModel( |
||||
|
name='ResumoOrdenacao', |
||||
|
fields=[ |
||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
|
('primeiro', models.CharField(max_length=30)), |
||||
|
('segundo', models.CharField(max_length=30)), |
||||
|
('terceiro', models.CharField(max_length=30)), |
||||
|
('quarto', models.CharField(max_length=30)), |
||||
|
('quinto', models.CharField(max_length=30)), |
||||
|
('sexto', models.CharField(max_length=30)), |
||||
|
('setimo', models.CharField(max_length=30)), |
||||
|
('oitavo', models.CharField(max_length=30)), |
||||
|
('nono', models.CharField(max_length=30)), |
||||
|
('decimo', models.CharField(max_length=30)), |
||||
|
], |
||||
|
options={ |
||||
|
'verbose_name': 'Ordenação do Resumo de uma Sessão', |
||||
|
'verbose_name_plural': 'Ordenação do Resumo de uma Sessão', |
||||
|
}, |
||||
|
), |
||||
|
] |
@ -0,0 +1,21 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-06-01 11:06 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0003_resumoordenacao'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='votonominal', |
||||
|
name='registro_votacao', |
||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sessao.RegistroVotacao'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,39 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-06-01 12:46 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.conf import settings |
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
from datetime import datetime |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
||||
|
('sessao', '0004_votonominal_registro_votacao'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.RemoveField( |
||||
|
model_name='votonominal', |
||||
|
name='registro_votacao', |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='votoparlamentar', |
||||
|
name='data_hora', |
||||
|
field=models.DateTimeField(auto_now_add=True, blank=True, null=True, verbose_name='Data/Hora'), |
||||
|
preserve_default=False, |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='votoparlamentar', |
||||
|
name='ip', |
||||
|
field=models.CharField(blank=True, max_length=30, null=True, verbose_name='IP'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='votoparlamentar', |
||||
|
name='user', |
||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL), |
||||
|
), |
||||
|
] |
@ -0,0 +1,26 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-06-01 12:57 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0005_auto_20170601_1246'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='votonominal', |
||||
|
name='votacao', |
||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sessao.RegistroVotacao'), |
||||
|
), |
||||
|
migrations.AlterField( |
||||
|
model_name='votoparlamentar', |
||||
|
name='votacao', |
||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sessao.RegistroVotacao'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,26 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-06-06 12:38 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0006_auto_20170601_1257'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AddField( |
||||
|
model_name='votoparlamentar', |
||||
|
name='expediente', |
||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sessao.ExpedienteMateria'), |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='votoparlamentar', |
||||
|
name='ordem', |
||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='sessao.OrdemDia'), |
||||
|
), |
||||
|
] |
@ -0,0 +1,38 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.7 on 2017-06-07 12:20 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0007_auto_20170606_1238'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.RemoveField( |
||||
|
model_name='votonominal', |
||||
|
name='materia', |
||||
|
), |
||||
|
migrations.RemoveField( |
||||
|
model_name='votonominal', |
||||
|
name='parlamentar', |
||||
|
), |
||||
|
migrations.RemoveField( |
||||
|
model_name='votonominal', |
||||
|
name='sessao', |
||||
|
), |
||||
|
migrations.RemoveField( |
||||
|
model_name='votonominal', |
||||
|
name='user', |
||||
|
), |
||||
|
migrations.RemoveField( |
||||
|
model_name='votonominal', |
||||
|
name='votacao', |
||||
|
), |
||||
|
migrations.DeleteModel( |
||||
|
name='VotoNominal', |
||||
|
), |
||||
|
] |
@ -0,0 +1,20 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.9.11 on 2017-06-19 14:41 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
dependencies = [ |
||||
|
('sessao', '0008_auto_20170607_1220'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.AlterField( |
||||
|
model_name='votoparlamentar', |
||||
|
name='ip', |
||||
|
field=models.CharField(blank=True, default='', max_length=30, verbose_name='IP'), |
||||
|
), |
||||
|
] |
File diff suppressed because it is too large
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 6.6 KiB |
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue