Browse Source

Merge pull request #1090 from interlegis/1030-migracao-textos-norma

fix #1030 - migracao textos norma
pull/1091/head
Luciano Henrique Nunes de Almeida 8 years ago
committed by GitHub
parent
commit
0864b8c9a3
  1. 12
      sapl/base/search_indexes.py
  2. 30
      sapl/legacy/migracao_documentos.py

12
sapl/base/search_indexes.py

@ -7,6 +7,8 @@ from haystack import indexes
from sapl.materia.models import DocumentoAcessorio, MateriaLegislativa
from sapl.norma.models import NormaJuridica
from textract.exceptions import ExtensionNotSupported
class DocumentoAcessorioIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
@ -32,15 +34,19 @@ class DocumentoAcessorioIndex(indexes.SearchIndex, indexes.Indexable):
if arquivo:
try:
arquivo.open()
arquivo.close()
except OSError:
return self.prepared_data
if not os.path.splitext(arquivo.path)[1][:1]:
return self.prepared_data
extracted_data = textract.process(
arquivo.path).decode(
'utf-8').replace('\n', ' ')
try:
extracted_data = textract.process(
arquivo.path).decode(
'utf-8').replace('\n', ' ')
except ExtensionNotSupported:
return self.prepared_data
extracted_data = extracted_data.replace('\t', ' ')

30
sapl/legacy/migracao_documentos.py

@ -11,6 +11,7 @@ from sapl.materia.models import (DocumentoAcessorio, MateriaLegislativa,
from sapl.norma.models import NormaJuridica
from sapl.parlamentares.models import Parlamentar
from sapl.protocoloadm.models import DocumentoAdministrativo
from sapl.protocoloadm.models import DocumentoAcessorioAdministrativo
from sapl.sessao.models import SessaoPlenaria
from sapl.settings import MEDIA_ROOT
from sapl.utils import delete_texto, save_texto
@ -29,6 +30,17 @@ EXTENSOES = {
'text/html': '.html',
'text/rtf': '.rtf',
'text/x-python': '.py',
'text/plain': '.ksh',
'text/plain': '.c',
'text/plain': '.h',
'text/plain': '.txt',
'text/plain': '.bat',
'text/plain': '.pl',
'text/plain': '.asc',
'text/plain': '.text',
'text/plain': '.pot',
'text/plain': '.brf',
'text/plain': '.srt',
# sem extensao
'application/octet-stream': '', # binário
@ -53,7 +65,7 @@ DOCS = {
'materia/{}',
'documentoacessorio/{0}/{0}{1}')],
NormaJuridica: [(
'texto_original',
'texto_integral',
'norma_juridica/{}_texto_integral',
'normajuridica/{0}/{0}_texto_integral{1}')],
SessaoPlenaria: [
@ -71,7 +83,13 @@ DOCS = {
DocumentoAdministrativo: [(
'texto_integral',
'administrativo/{}_texto_integral',
'documentoadministrativo/{0}/{0}_texto_integral{1}')],
'documentoadministrativo/{0}/{0}_texto_integral{1}')
],
DocumentoAcessorioAdministrativo: [(
'arquivo',
'administrativo/{}',
'documentoacessorioadministrativo/{0}/{0}_acessorio_administrativo{1}')
],
}
DOCS = {tipo: [(campo,
@ -105,9 +123,14 @@ def migrar_docs_logo():
print('#### Migrando logotipo da casa ####')
[(_, origem, destino)] = DOCS[CasaLegislativa]
props_sapl = os.path.dirname(origem)
# a pasta props_sapl deve conter apenas o origem e metadatas!
# Edit: Aparentemente há diretório que contém properties ao invés de
# metadata. O assert foi modificado para essa situação.
assert set(os.listdir(em_media(props_sapl))) < {
'logo_casa.gif', '.metadata', 'logo_casa.gif.metadata'}
'logo_casa.gif', '.metadata', 'logo_casa.gif.metadata',
'.properties', 'logo_casa.gif.properties', '.objects'}
mover_documento(origem, destino)
casa = get_casa_legislativa()
casa.logotipo = destino
@ -199,6 +222,7 @@ def migrar_documentos():
SessaoPlenaria,
Proposicao,
DocumentoAdministrativo,
DocumentoAcessorioAdministrativo,
]:
migrar_docs_por_ids(tipo)

Loading…
Cancel
Save