Browse Source

Refatora migração das propriedades da casa

pull/1611/head
Marcio Mazza 7 years ago
parent
commit
2eba9c1926
  1. 82
      sapl/legacy/migracao_documentos.py

82
sapl/legacy/migracao_documentos.py

@ -6,11 +6,11 @@ import magic
import yaml import yaml
from sapl.base.models import CasaLegislativa from sapl.base.models import CasaLegislativa
from sapl.legacy.migration import warn from sapl.legacy.migration import exec_legado, warn
from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa, from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa,
Proposicao) Proposicao)
from sapl.norma.models import NormaJuridica from sapl.norma.models import NormaJuridica
from sapl.parlamentares.models import Parlamentar, Municipio from sapl.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import (DocumentoAcessorioAdministrativo, from sapl.protocoloadm.models import (DocumentoAcessorioAdministrativo,
DocumentoAdministrativo) DocumentoAdministrativo)
from sapl.sessao.models import SessaoPlenaria from sapl.sessao.models import SessaoPlenaria
@ -74,7 +74,8 @@ DOCS = {
Proposicao: [ Proposicao: [
('texto_original', ('texto_original',
'proposicao/{}', 'proposicao/{}',
'private/proposicao/{0}/{0}{1}')], 'private/proposicao/{0}/{0}{1}')
],
DocumentoAdministrativo: [ DocumentoAdministrativo: [
('texto_integral', ('texto_integral',
'administrativo/{}_texto_integral', 'administrativo/{}_texto_integral',
@ -106,16 +107,36 @@ def mover_documento(origem, destino):
os.rename(origem, destino) os.rename(origem, destino)
def get_casa_legislativa(): def migrar_propriedades_da_casa():
print('#### Migrando propriedades da casa ####')
caminho = em_media('sapl_documentos/propriedades.yaml')
with open(caminho, 'r') as arquivo:
propriedades = yaml.safe_load(arquivo)
casa = CasaLegislativa.objects.first() casa = CasaLegislativa.objects.first()
if not casa: if not casa:
casa = CasaLegislativa.objects.create(**{k: 'PREENCHER...' for k in [ casa = CasaLegislativa()
'codigo', 'nome', 'sigla', 'endereco', 'cep', 'municipio', 'uf', campos_para_propriedades = [('codigo', 'cod_casa'),
]}) ('nome', 'nom_casa'),
return casa ('sigla', 'sgl_casa'),
('endereco', 'end_casa'),
('cep', 'num_cep'),
('telefone', 'num_tel'),
('fax', 'num_fax'),
('endereco_web', 'end_web_casa'),
('email', 'end_email_casa'),
('sigla', 'sgl_casa'),
('informacao_geral', 'txt_informacao_geral')]
for campo, prop in campos_para_propriedades:
setattr(casa, campo, propriedades[prop])
# Localidade
sql_localidade = '''
select nom_localidade, sgl_uf from localidade
where cod_localidade = {}'''.format(propriedades['cod_localidade'])
[(casa.municipio, casa.uf)] = exec_legado(sql_localidade)
casa.save()
def migrar_docs_logo(): def migrar_logotipo_da_casa():
print('#### Migrando logotipo da casa ####') print('#### Migrando logotipo da casa ####')
[(_, origem, destino)] = DOCS[CasaLegislativa] [(_, origem, destino)] = DOCS[CasaLegislativa]
props_sapl = os.path.dirname(origem) props_sapl = os.path.dirname(origem)
@ -132,7 +153,7 @@ def migrar_docs_logo():
', '.join(sobrando)) ', '.join(sobrando))
mover_documento(origem, destino) mover_documento(origem, destino)
casa = get_casa_legislativa() casa = CasaLegislativa.objects.first()
casa.logotipo = destino casa.logotipo = destino
casa.save() casa.save()
@ -193,41 +214,6 @@ def migrar_docs_por_ids(model):
obj.save() obj.save()
def migrar_info_da_casa():
props = 'media/sapl_documentos/propriedades.yaml'
campos_usados = {
'cod_casa': 'codigo',
'nom_casa': 'nome',
'sgl_casa': 'sigla',
'end_casa': 'endereco',
'num_cep': 'cep',
'num_tel': 'telefone',
'num_fax': 'fax',
'end_web_casa': 'endereco_web',
'end_email_casa': 'email',
'sgl_casa': 'sigla',
'txt_informacao_geral': 'informacao_geral',
}
campos_nao_usados = [
'cor_borda', 'cor_fundo', 'cor_principal', 'id_logo',
'ind_acesso_info_adm', 'txt_senha_inicial', 'versao',
]
f = open(props, 'r')
propriedades = yaml.safe_load(f)
for campo in campos_nao_usados:
propriedades.pop(campo)
cod_localidade = propriedades.pop('cod_localidade')
municipio = Municipio.objects.get(pk=cod_localidade)
casa = CasaLegislativa.objects.first()
for nome_campo, valor in propriedades.items():
setattr(casa, campos_usados[nome_campo], valor)
casa.municipio = municipio.nome
casa.uf = municipio.uf
casa.save()
def migrar_documentos(): def migrar_documentos():
# aqui supomos que uma pasta chamada sapl_documentos está em MEDIA_ROOT # aqui supomos que uma pasta chamada sapl_documentos está em MEDIA_ROOT
# com o conteúdo da pasta de mesmo nome do zope # com o conteúdo da pasta de mesmo nome do zope
@ -237,8 +223,10 @@ def migrar_documentos():
# Isto significa que para rodar novamente esta função é preciso # Isto significa que para rodar novamente esta função é preciso
# restaurar a pasta sapl_documentos ao estado inicial # restaurar a pasta sapl_documentos ao estado inicial
migrar_docs_logo() # esta ordem é importante
migrar_info_da_casa() migrar_propriedades_da_casa()
migrar_logotipo_da_casa()
for model in [ for model in [
Parlamentar, Parlamentar,
MateriaLegislativa, MateriaLegislativa,

Loading…
Cancel
Save