Browse Source

Migra documentos acessórios de matéria

pull/978/head
Marcio Mazza 8 years ago
parent
commit
a0eb77d197
  1. 27
      sapl/legacy/migracao_documentos.py

27
sapl/legacy/migracao_documentos.py

@ -1,12 +1,11 @@
import mimetypes import mimetypes
import os import os
import re import re
from glob import glob
import magic import magic
from sapl.base.models import CasaLegislativa 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.parlamentares.models import Parlamentar
from sapl.settings import MEDIA_ROOT from sapl.settings import MEDIA_ROOT
@ -36,8 +35,11 @@ DOCS = {
MateriaLegislativa: ( MateriaLegislativa: (
'texto_original', 'texto_original',
'materia/{}_texto_integral', '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, DOCS = {tipo: (campo,
@ -93,16 +95,18 @@ def get_extensao(caminho):
def migrar_docs_por_ids(tipo): def migrar_docs_por_ids(tipo):
campo, base_origem, base_destino = DOCS[tipo] campo, base_origem, base_destino = DOCS[tipo]
origens = glob(em_media(base_origem.format('*')))
def get_id(caminho): dir_origem, nome_origem = os.path.split(em_media(base_origem))
match = re.match('.*/' + base_origem.format('(\d+)'), caminho) pat = re.compile('^{}$'.format(nome_origem.format('(\d+)')))
return int(match.group(1)) for arq in os.listdir(dir_origem):
match = pat.match(arq)
for origem in origens: if match:
id, extensao = get_id(origem), get_extensao(origem) origem = os.path.join(dir_origem, match.group(0))
id = match.group(1)
extensao = get_extensao(origem)
destino = base_destino.format(id, extensao) destino = base_destino.format(id, extensao)
mover_documento(origem, destino) mover_documento(origem, destino)
obj = tipo.objects.get(pk=id) obj = tipo.objects.get(pk=id)
setattr(obj, campo, destino) setattr(obj, campo, destino)
obj.save() obj.save()
@ -116,3 +120,4 @@ def migrar_documentos():
migrar_docs_logo() migrar_docs_logo()
migrar_docs_por_ids(Parlamentar) migrar_docs_por_ids(Parlamentar)
migrar_docs_por_ids(MateriaLegislativa) migrar_docs_por_ids(MateriaLegislativa)
migrar_docs_por_ids(DocumentoAcessorio)

Loading…
Cancel
Save