Browse Source

Corrige encoding da exportação de zope de sapl 3.0

pull/1704/head
Marcio Mazza 7 years ago
parent
commit
0ae38465a4
  1. 12
      sapl/legacy/scripts/exporta_zope/dump30.py
  2. 4
      sapl/legacy/scripts/exporta_zope/exporta_zope.py

12
sapl/legacy/scripts/exporta_zope/dump30.py

@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
from exporta_zope import (br, dump_folder, dump_propriedades, dump_usuarios, from exporta_zope import (br, dump_folder, dump_propriedades, dump_usuarios,
get_app, logando_nao_identificados) get_app, logando_nao_identificados)
@ -6,11 +8,13 @@ def dump_sapl30():
"""Extrai dados do zope de um sapl 3.0, que, ao que tudo indica: """Extrai dados do zope de um sapl 3.0, que, ao que tudo indica:
* não possui a pasta XSLT * não possui a pasta XSLT
* usa um mountpoint separado para os documentos * usa um mountpoint separado para os documentos
* usa encoding utf-8 (ao invés de iso-8859-1)
""" """
destino = '../../../../media'
data_fs_path = destino + '/Data.fs'
docs_path = destino + '/DocumentosSapl.fs'
try: try:
destino = '../../../../media'
data_fs_path = destino + '/Data.fs'
docs_path = destino + '/DocumentosSapl.fs'
app, close_db = get_app(data_fs_path) app, close_db = get_app(data_fs_path)
sapl = br(app['sapl']) sapl = br(app['sapl'])
dump_usuarios(sapl, destino) dump_usuarios(sapl, destino)
@ -22,6 +26,6 @@ def dump_sapl30():
docs = br(app['sapl_documentos']) docs = br(app['sapl_documentos'])
with logando_nao_identificados(): with logando_nao_identificados():
dump_folder(docs, destino) dump_folder(docs, destino)
dump_propriedades(docs, destino) dump_propriedades(docs, destino, 'utf-8')
finally: finally:
close_db() close_db()

4
sapl/legacy/scripts/exporta_zope/exporta_zope.py

@ -246,11 +246,11 @@ def find_sapl(app):
return sapl return sapl
def dump_propriedades(docs, path): def dump_propriedades(docs, path, encoding='iso-8859-1'):
props_sapl = br(docs['props_sapl']) props_sapl = br(docs['props_sapl'])
ids = [p['id'] for p in props_sapl['_properties']] ids = [p['id'] for p in props_sapl['_properties']]
props = {id: props_sapl[id] for id in ids} props = {id: props_sapl[id] for id in ids}
props = {id: p.decode('iso-8859-1') if isinstance(p, str) else p props = {id: p.decode(encoding) if isinstance(p, str) else p
for id, p in props.items()} for id, p in props.items()}
save_as_yaml(path, 'sapl_documentos/propriedades.yaml', props) save_as_yaml(path, 'sapl_documentos/propriedades.yaml', props)

Loading…
Cancel
Save