Browse Source

Vincula docs de reuniões aos dados

pull/2023/head
Marcio Mazza 7 years ago
parent
commit
6b9d6d11da
  1. 14
      sapl/legacy/migracao_documentos.py

14
sapl/legacy/migracao_documentos.py

@ -8,6 +8,7 @@ from django.db import transaction
from image_cropping.fields import ImageCropField from image_cropping.fields import ImageCropField
from sapl.base.models import CasaLegislativa from sapl.base.models import CasaLegislativa
from sapl.comissoes.models import Reuniao
from sapl.legacy.migracao_dados import exec_legado from sapl.legacy.migracao_dados import exec_legado
from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa, from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa,
Proposicao) Proposicao)
@ -26,6 +27,8 @@ DOCS = {
MateriaLegislativa: [('texto_original', 'materia/{}_texto_integral')], MateriaLegislativa: [('texto_original', 'materia/{}_texto_integral')],
DocumentoAcessorio: [('arquivo', 'materia/{}')], DocumentoAcessorio: [('arquivo', 'materia/{}')],
NormaJuridica: [('texto_integral', 'norma_juridica/{}_texto_integral')], NormaJuridica: [('texto_integral', 'norma_juridica/{}_texto_integral')],
Reuniao: [('upload_pauta', 'reuniao_comissao/{}_pauta'),
('upload_ata', 'reuniao_comissao/{}_ata')],
SessaoPlenaria: [('upload_pauta', 'pauta_sessao/{}_pauta_sessao'), SessaoPlenaria: [('upload_pauta', 'pauta_sessao/{}_pauta_sessao'),
('upload_ata', 'ata_sessao/{}_ata_sessao'), ('upload_ata', 'ata_sessao/{}_ata_sessao'),
('upload_anexo', 'anexo_sessao/{}_texto_anexado')], ('upload_anexo', 'anexo_sessao/{}_texto_anexado')],
@ -40,9 +43,12 @@ DOCS = {model: [(campo, join('sapl_documentos', origem))
for model, campos in DOCS.items()} for model, campos in DOCS.items()}
def mover_documento(repo, origem, destino): def mover_documento(repo, origem, destino, ignora_origem_ausente=False):
origem, destino = [join(repo.working_dir, c) if not os.path.isabs(c) else c origem, destino = [join(repo.working_dir, c) if not os.path.isabs(c) else c
for c in (origem, destino)] for c in (origem, destino)]
if ignora_origem_ausente and not os.path.exists(origem):
print('Origem ignorada ao mover documento: {}'.format(origem))
return
os.makedirs(os.path.dirname(destino), exist_ok=True) os.makedirs(os.path.dirname(destino), exist_ok=True)
repo.git.mv(origem, destino) repo.git.mv(origem, destino)
@ -52,7 +58,8 @@ def migrar_logotipo(repo, casa, propriedades):
[(campo, origem)] = DOCS[CasaLegislativa] [(campo, origem)] = DOCS[CasaLegislativa]
# a extensão do logo pode ter sido ajustada pelo tipo real do arquivo # a extensão do logo pode ter sido ajustada pelo tipo real do arquivo
nome_nas_propriedades = os.path.splitext(propriedades['id_logo'])[0] nome_nas_propriedades = os.path.splitext(propriedades['id_logo'])[0]
arquivos = glob(join(repo.working_dir, origem.format(nome_nas_propriedades))) arquivos = glob(
join(repo.working_dir, origem.format(nome_nas_propriedades)))
if arquivos: if arquivos:
assert len(arquivos) == 1, 'Há mais de um logotipo para a casa' assert len(arquivos) == 1, 'Há mais de um logotipo para a casa'
[logo] = arquivos [logo] = arquivos
@ -145,7 +152,8 @@ def migrar_documentos(repo):
# Isto significa que para rodar novamente esta função é preciso # Isto significa que para rodar novamente esta função é preciso
# restaurar o repo ao estado anterior # restaurar o repo ao estado anterior
mover_documento(repo, 'XSLT', 'sapl/public/XSLT') mover_documento(repo, 'XSLT', 'sapl/public/XSLT',
ignora_origem_ausente=True)
migrar_propriedades_da_casa(repo) migrar_propriedades_da_casa(repo)

Loading…
Cancel
Save