Re: [zope-pt] Problemas oa importar um site .zexp;

2009-12-23 Por tôpico André FS
Olá, Jeferson.


 Traceback (innermost last):
 Module ZPublisher.Publish, line 119, in publish
 Module ZPublisher.mapply, line 88, in mapply
 Module ZPublisher.Publish, line 42, in call_object
 Module OFS.ObjectManager, line 610, in manage_importObject
 Module OFS.ObjectManager, line 629, in _importObjectFromFile
 Module Products.CMFCore.PortalFolder, line 443, in _verifyObjectPaste
 ValueError: Disallowed subobject type: Plone Site


Por essa mensagem de erro, imagino que você tentou importar o .zexp
(que é um Plone Site), dentro de outro Plone Site ou de uma pasta
Zope. Se esse for o caso, tente importar na raiz do Zope.

--
André FS


Re: [zope-pt]Pegar dados de arquivo xml

2009-02-18 Por tôpico André FS
Olá, Andréa.

 Opa,
 Obrigada Leonardo porém não estou conseguindo usar as bibliotecas.
 Dá erro de 'Privilégios Insuficientes'.

Você deve estar tentando utilizá-las através de um PythonScript na
ZMI, certo? Nesse caso não vai funcionar mesmo. O Python executado por
esses scripts não permite a importação de certos módulos por questões
de segurança.

Se você está desenvolvendo um produto, você pode colocar seus códigos
na classe de algum tipo de conteúdo. Se esse não é seu caso, você pode
usar um External Method [1]. Espero que ajude.

[1] http://plone.org/documentation/how-to/create-and-use-an-external-method/

--
André FS


Re: [zope-pt] Pegar valor de pasta que contem numeros!

2009-02-17 Por tôpico André FS
 Olá pessoal,

Olá, Luiz.

[snip]
 Quando coloco para puxar uma pasta que tem como ID números e está abaixo da
 pasta EXEMPLO, me da erro no código, por exemplo:

 pasta = context.teste.008
 -ERRO:
 invalid syntax (Script (Python), line 1)

Veja que, de fato, esse não é um código Python (PythonScript do Zope,
que seja) válido, o identificador deveria começar com uma letra, como
você deve ter percebido. Talvez haja uma forma mais elegante, mas essa
aqui funciona:

pasta = context.teste
subpasta = pasta.getFolderContents({'id':'008'})

'subpasta' será um objeto tipo 'brain' resultante de consulta no
catálogo, assim, para levantar o objeto, de fato, do ZODB, faça:

obj008 = subpasta[0].getObject()

[snip]
 A proposito pessoal, com a variável abaixo, só consigo pegar o valor que
 está em CATALOG, mas gostaria de pegar o valor da pasta origem de onde
 reside o objeto, por exemplo:
 ---
 pa = context.portal_url.getPortalPath()+'/pasta1';
 obj = context.portal_url.portal_catalog(Type = Page,
 path = pa)

Você não precisa chamar 'portal_catalog' a partir de 'portal_url'.
Isso só funcionou por conta da Aquisição [1]. Seu código poderia ser
desse jeito:

pa = context.portal_url.getPortalPath()+'/pasta1';
obj = context.portal_catalog(Type = Page,
 path = pa)

 for objeto in obj:
 print objeto.aq_parent
 return printed
 ---
 -SAÍDA:
 CatalogTool at portal_catalog

Isso está correto. Quando você faz uma consulta no catálogo, os
valores retornados, por motivos de performance, são objetos proxies (o
tal 'brain' ao qual me referi anteriormente). O pai desses objetos
são, de fato, o CatalogTool. Se você deseja acessar o objeto real a
partir do 'brain', existe o método 'getObject'. Tente reescrever seu
código dessa forma:

for objeto in obj:
print objeto.getObject().aq_parent
return printed

Espero que ajude.

[1] http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/Acquisition.stx

--
André FS