From a0eb77d197575f894a472e952a2e785053528cd9 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Tue, 21 Mar 2017 15:17:15 -0300 Subject: [PATCH] =?UTF-8?q?Migra=20documentos=20acess=C3=B3rios=20de=20mat?= =?UTF-8?q?=C3=A9ria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/legacy/migracao_documentos.py | 35 +++++++++++++++++------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/sapl/legacy/migracao_documentos.py b/sapl/legacy/migracao_documentos.py index a81196e2f..778e2d52c 100644 --- a/sapl/legacy/migracao_documentos.py +++ b/sapl/legacy/migracao_documentos.py @@ -1,12 +1,11 @@ import mimetypes import os import re -from glob import glob import magic from sapl.base.models import CasaLegislativa -from sapl.materia.models import MateriaLegislativa +from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa from sapl.parlamentares.models import Parlamentar from sapl.settings import MEDIA_ROOT @@ -36,8 +35,11 @@ DOCS = { MateriaLegislativa: ( 'texto_original', 'materia/{}_texto_integral', - 'materialegislativa/{0}/{0}_texto_integral{1}', - ) + 'materialegislativa/{0}/{0}_texto_integral{1}'), + DocumentoAcessorio: ( + 'arquivo', + 'materia/{}', + 'documentoacessorio/{0}/{0}{1}'), } DOCS = {tipo: (campo, @@ -93,19 +95,21 @@ def get_extensao(caminho): def migrar_docs_por_ids(tipo): campo, base_origem, base_destino = DOCS[tipo] - origens = glob(em_media(base_origem.format('*'))) - def get_id(caminho): - match = re.match('.*/' + base_origem.format('(\d+)'), caminho) - return int(match.group(1)) + dir_origem, nome_origem = os.path.split(em_media(base_origem)) + pat = re.compile('^{}$'.format(nome_origem.format('(\d+)'))) + for arq in os.listdir(dir_origem): + match = pat.match(arq) + if match: + origem = os.path.join(dir_origem, match.group(0)) + id = match.group(1) + extensao = get_extensao(origem) + destino = base_destino.format(id, extensao) + mover_documento(origem, destino) - for origem in origens: - id, extensao = get_id(origem), get_extensao(origem) - destino = base_destino.format(id, extensao) - mover_documento(origem, destino) - obj = tipo.objects.get(pk=id) - setattr(obj, campo, destino) - obj.save() + obj = tipo.objects.get(pk=id) + setattr(obj, campo, destino) + obj.save() def migrar_documentos(): @@ -116,3 +120,4 @@ def migrar_documentos(): migrar_docs_logo() migrar_docs_por_ids(Parlamentar) migrar_docs_por_ids(MateriaLegislativa) + migrar_docs_por_ids(DocumentoAcessorio)