Conjunto de mudanças 911 no repositório publico


Ignorar:
Timestamp:
11/10/2005 09:43:44 (14 anos atrás)
Autor:
ciciliati
Mensagem:

Conversor de versão dos docs SDE atualizado.

Arquivo:
1 editado

Legenda:

Não Modificado
Adicionado
Removido
  • ILSAPL/trunk/instalacao/conv_sde0_to_sde1.py

    r909 r911  
    1 # Considerar que os objetos já tenham sido importados para as pastas corretas (de acordo com a v. 2.1)
    2 # Para fazê-lo é necessário, no entanto:
    3 #    1) Instalar o StructuredDoc v.002
    4 #    2) Importar os docs para o ZODB
    5 #    3) Substituir o StructuredDoc v002 para o v101 (reiniciar o Zope)
    6 #    3.5) Desativar os Scripts de evento SDE (renomeando-os)
    7 #    4) Fazer a conversão.
    8 #    5) Reativar os Scripts de evento SDE
    9 # Converter os modelos??? (Os modelos a serem distribuídos com a v. 2.1 já estarão corretos)
    10 
    11 
    12 def desativa_eventos (contexto):
    13     for obj in contexto.objectValues():
    14         if obj.meta_type=='Script (Python)':
    15             oid = obj.id()
    16             if oid[0:4] == 'SDE_':
    17                 contexto.manage_renameObject(obj.id(), 'off.'+obj.id())
    18         else:
    19             desativa_eventos (obj)
    20            
    21 def ativa_eventos (contexto):
    22     for obj in contexto.objectValues():
    23         if obj.meta_type=='Script (Python)':
    24             oid = obj.id()
    25             if oid[0:8] == 'off.SDE_':
    26                 contexto.manage_renameObject(oid, 'off.'+oid[4:])
    27         else:
    28             ativa_eventos (obj)
    29 
    30 def converte_2():
    31     # Converter os documentos (proposições)
    32     suf_old = '.oldSAPL'
    33     suf_len = len(suf_old)
    34    
    35     container = sapl_documentos.proposicao
    36     container_tpt = sapl_documentos.modelo
    37    
    38     # Desativar os eventos SDE
    39     for tpt in container_tpt:
    40         desativa_eventos(tpt)
    41    
    42     # Renomear os docs existentes, para permitir a criação de novos com os ids originais
    43     for doc in container.objectValues('StructuredDocument'):
    44         container.manage_renameObject (doc.id, doc.id + suf_old)  # Essa jaca não funciona, por falta de privilégios. Executar como externa_method, conectado como admin.
    45            
    46        
    47     class Esqueleto:
    48         pass   
    49        
    50     for doc in container.objectValues('StructuredDocument'):
    51        
    52         #cria e inicializa uma estrutura temporária para conter os parâmetros de criação do doc
    53         params=Esqueleto()
    54         params.id=doc.id[:-suf_len]
    55         params.template_path=doc.template_path
    56         params.type=doc.type
    57        
    58         #cria uma nova instância do doc
    59         new_doc=container.manage_addProduct['StructuredDoc'].StrDoc_add(params)
    60        
    61         #apaga a estrutura temporária com os parâmetros de criação do doc, para evitar confusão
    62         del(params)
    63        
    64         #para cada elemento do doc, cria um novo em new_doc
    65         for elem in doc.objectValues('StrDocElement'):
    66            
    67           #cria estrutura temporaria para parametros
    68           params=Esqueleto()
    69          
    70           new_doc.manage_addProduct['StructuredDoc'].StrDocElem_add(params)
    71        
    72     # Reativar os eventos SDE
    73     for tpt in container_tpt:
    74         ativa_eventos(tpt)
    75    
    761de_para = {}
    772de_para['StructuredDocument']='SDE-Document'
Note: Veja TracChangeset para ajuda no uso do visualizador de conjunto de mudanças.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.