diff --git a/sapl/base/search_indexes.py b/sapl/base/search_indexes.py index c85be523b..e41dac3bf 100644 --- a/sapl/base/search_indexes.py +++ b/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', ' ') diff --git a/sapl/legacy/migracao_documentos.py b/sapl/legacy/migracao_documentos.py index 21697dc4f..7e6182222 100644 --- a/sapl/legacy/migracao_documentos.py +++ b/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)