O script comentado estou enviando por anexo.
Atenciosamente,
Jeferson Lelis.
________________________________
De: Jeferson Lelis C. dos Santos <jeferle...@yahoo.com>
Para: zope-pt@yahoogrupos.com.br
Enviadas: Segunda-feira, 9 de Fevereiro de 2009 22:58:03
Assunto: Res: [zope-pt] Buscar itens e ao mesmo tempo move-los!
Luiz,
Fiz o script python abaixo baseado em uma pasta esperta que ja possui as news
do ano de 2008, como você ja tem. Este script pega os objetos da pasta esperta
localizada na pasta news e cria novos objetos na pasta arquivos.Abaixo eu
coloco o código comentado. Acho que fica faltando deletar os objetos copiados
da pasta anterior. Ai é só da mais uma pesquisada. Não sei se esta é a melhor
solução, mas espero ter ajudado. Ah não esqueça de ir na aba Proxy do script e
setar ele como manager, senão o script não terá permissão para criar um novo
objeto
#Local onde se encontra a pasta esperta com as news de 2008
documentos = context.news. news2008. queryCatalog( );
#Laço de repetição que coloca na vaiavel i uma news por vez
for i in documentos:
#Retorna o objeto
documento = i.getObject( );
#Localizo o contexto onde serão criados os meus arquivos
contextoatual = context.arquivos;
#pego a identificação do objeto
newId = documento.getId( );
#Invocação para criação de um novo item com o tipo que foi determinado
News Item
contextoatual. invokeFactory( id=newId, type_name='News Item',
review_state= 'published' );
#Retorno o objeto criado
objeto = getattr(contextoatu al,newId) ;
#Edição do objeto criado. Ai coloquei os campos básicos você pode
colocar outros como effective etc...
objeto.edit( title = documento.Title( ), description =
documento.Descripti on(),
image = documento.getImage( ), imageCaption =
documento.getImageC aption()) ;
#Publico o objeto criado
context.portal_ workflow. doActionFor( objeto, 'publish');
#coloco uma mensagem na tela informando que tudo ocorreu bem
print 'copia efetuada com sucesso!'
#retorno a mensagem
return printed
Atenciosamente,
Jeferson Lelis.
________________________________
De: Luiz <softdrivers2@ yahoo.com. br>
Para: Zope-pt <zope...@yahoogrupos .com.br>
Enviadas: Segunda-feira, 9 de Fevereiro de 2009 17:44:04
Assunto: [zope-pt] Buscar itens e ao mesmo tempo move-los!
Olá todos,
Tenho uma pasta de "news", e uma outra pasta chamada "arquivos". Dentro da
pasta "news" os itens de notícias estão misturados entre os anos 2008 e 2009.
Eu gostaria de fazer uma busca dentro da pasta "news" e buscar apenas os itens
de notícias que correspondem ao ano de 2008 e automaticamente joga-los dentro
da pasta "arquivos". Eu até consegui fazer uma busca pela "pasta esperta"
(Coleção) que pega estas datas de 2008, o problema é que na "pasta esperta"
(Coleção) não tem como por uma "AÇÃO" de COPIAR ou MOVER os itens. Por script
tem como fazer? Não tenho idéia de como fazer! Alguém pode me ajudar ou me dar
uma luz nesta questão?
Obrigado pela atenção!
________________________________
Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 -
Celebridades - Música - Esportes
________________________________
Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 -
Celebridades - Música - Esportes
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
#Local onde se encontra a pasta esperta com as news de 2008
documentos = context.news. news2008. queryCatalog( );
#Laço de repetição que coloca na vaiavel i uma news por vez
for i in documentos:
#Retorna o objeto
documento = i.getObject( );
#Localizo o contexto onde serão criados os meus arquivos
contextoatual = context.arquivos;
#pego a identificação do objeto
newId = documento.getId( );
#Invocação para criação de um novo item com o tipo que foi determinado
News Item
contextoatual. invokeFactory( id=newId, type_name='News Item',
review_state= 'published' );
#Retorno o objeto criado
objeto = getattr(contextoatu al,newId) ;
#Edição do objeto criado. Ai coloquei os campos básicos você pode
colocar outros como effective etc...
objeto.edit( title = documento.Title( ), description =
documento.Descripti on(),image = documento.getImage( ), imageCaption =
documento.getImageC aption()) ;
#Publico o objeto criado
context.portal_ workflow. doActionFor( objeto, 'publish');
#coloco uma mensagem na tela informando que tudo ocorreu bem
print 'copia efetuada com sucesso!'
#retorno a mensagem
return printed