Re: [Zope-pt] Estrutura de diretórios pelo portal_catalog

2005-10-17 Por tôpico Rodrigo Dias Arruda Senra
On Wed, 12 Oct 2005 13:38:48 -0300
xiru [EMAIL PROTECTED] wrote:

 Senra,
 
 so um comentario...
 
 sua solucao nao é das melhores pq levanta muitos objetos do ZODB. O
 ideal é sempre usar os Brains ao invez de ficar invocando getObject.
 Em uma instalacao grande, com ZEO, ficar dando getObject mata o
 cluster, principalmente se voce tem bastante objetos.

Obrigado pela correção Xiru, mas não sei se eu entendi corretamente
o que deveria ser feito.

Voce poderia corrigir o código abaixo demonstrando o uso correto do Brains
para obter o mesmo efeito ?

Atenciosamente,
Senra

  result = context.cancun.portal.portal_catalog(portal_type=AnuncioBalada)
  for i in result:
  obj = i.getObject()
  caminho_genealogico = []
  while obj:
  try:
  caminho_genealogico.append(obj.getId())
  obj = obj.aq_parent
  except:
  break
 
  # pretty-print
  caminho_genealogico.reverse()
  for level,Id in enumerate(caminho_genealogico):
  print \t*level, Id
 
  break # descomente para testar só 1 iteração
  return printed



Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 






Re: [Zope-pt] Estrutura de diretórios pelo portal_catalog

2005-10-17 Por tôpico Luciano Ramalho
On 10/17/05, Rodrigo Dias Arruda Senra [EMAIL PROTECTED] wrote:
 Obrigado pela correção Xiru, mas não sei se eu entendi corretamente
 o que deveria ser feito.

 Voce poderia corrigir o código abaixo demonstrando o uso correto do Brains
 para obter o mesmo efeito ?

Brain é o nome infeliz dos registros retornados pelo Catalog,
representados pela variável i no seu código, Senra. Quando dou aulas,
eu chamo os brains de registros catalográficos para deixar claro
que eles não são objetos de conteúdo, mas apenas representações
resumidas deles (assim como um registro bibliográfico não é um livro,
mas apenas uma representação resumida dele).

O que o Xiru disse é que a sua solução é muito cara porque ao chamar
i.getObject() você está acessando o objeto de conteúdo em si, ou
acordando-o (waking it up como dizem os zopistas gringos), e
portanto consumindo muita memória, especialmente se o seu código
percorre recursivamente todas a pastas do site.

O ideal é tentar sempre que possível limitar os resultados das
consultas ao catalog, usando apenas os índices e o os metadados dos
registros catalográficos. Por isso vale estudar e aprender a usar bem
o portal_catalog, e um bom começo é o capítulo sobre o Catalog no Zope
Book.

[ ]s
Luciano


Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





Re: [Zope-pt] Estrutura de diretórios pelo portal_catalog

2005-10-12 Por tôpico xiru
Senra,

so um comentario...

sua solucao nao é das melhores pq levanta muitos objetos do ZODB. O
ideal é sempre usar os Brains ao invez de ficar invocando getObject.
Em uma instalacao grande, com ZEO, ficar dando getObject mata o
cluster, principalmente se voce tem bastante objetos.

Atenciosamente

On 10/11/05, Rodrigo Dias Arruda Senra [EMAIL PROTECTED] wrote:
 On Tue, 11 Oct 2005 10:04:57 -0300
 JJ (Arnaldo Janz Júnior) [EMAIL PROTECTED] wrote:

  Olá, pessoALL!
 
  Estamos montando uma estrutura de diretórios (p/ tentar ilustrar, a idéia é
  algo como o navtree ou o sitemap) via consulta no portal_catalog. Tudo
  corria bem exceto o fato de que estamos obtendo TODA a estrutura no mesmo
  nível, ou seja, ñ conseguimos identificar quem é filho de quem.
  Pelo que parece, não existe índice que guarde isso (quem é filho de quem) no
  portal_catalog, não é? E, se realmente não, alguém sabe como poderíamos
  fazer?
  Tentamos o produto ExtendedPathIndex p/ usarmos depth com um índice path do
  tipo ExtendedPathIndex - salvo engano, como no Plone 2.1 - mas não deu
  certo, ainda não conseguimos o resultado esperado (e, de fato, não me parece
  a solução, já que só reduz a quantidade de níveis a descer).
  Estamos usando Plone 2.0.5 + Zope 2.7.7.
  Alguém pode ajudar? Alguém já precisou construir uma estrutura assim?

 Serve achar quem é o pai de quem ao invés de quem é filho de quem ;o)

 Experimente algo assim:

 ::

 result = context.cancun.portal.portal_catalog(portal_type=AnuncioBalada)
 for i in result:
 obj = i.getObject()
 caminho_genealogico = []
 while obj:
 try:
 caminho_genealogico.append(obj.getId())
 obj = obj.aq_parent
 except:
 break

 # pretty-print
 caminho_genealogico.reverse()
 for level,Id in enumerate(caminho_genealogico):
 print \t*level, Id

 break # descomente para testar só 1 iteração
 return printed


 Abração,
 Senra


 Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
 Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]
 Links do Yahoo! Grupos












--
Fabiano Weimar dos Santos
Plone Developer and Consultant


Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 






Re: [Zope-pt] Estrutura de diretórios pelo portal_catalog

2005-10-11 Por tôpico xiru



Use o NavTreeIndexNG (CVS Collective). Ele permite buscas no catalogo
por path com um nivel apenas e é um pouco mais otimizado do que o
ExtendedPathIndex para esse fim especifico (palavras do Sidnei). Essa é
uma boa estrategia para substituir o objectValues, na maioria dos casos.On 10/11/05, JJ (Arnaldo Janz Júnior) 
[EMAIL PROTECTED] wrote:


Olá, pessoALL!Estamos montando uma estrutura de diretórios (p/
tentar ilustrar, a idéia é algo como o navtree ou o sitemap) via
consulta no portal_catalog. Tudo corria bem exceto o fato de que
estamos obtendo TODA a estrutura no mesmo nível, ou seja, ñ conseguimos
identificar quem é filho de quem.Pelo que parece, não existe índice
que guarde isso (quem é filho de quem) no portal_catalog, não é? E, se
realmente não, alguém sabe como poderíamos fazer?
Tentamos o produto ExtendedPathIndex p/ usarmos depth com um índice
path do tipo ExtendedPathIndex - salvo engano, como no Plone 2.1
- mas não deu certo, ainda não conseguimos o resultado esperado (e, de
fato, não me parece a solução, já que só reduz a quantidade de níveis a
descer).Estamos usando Plone 2.0.5 + Zope 2.7.7.Alguém pode ajudar? Alguém já precisou construir uma estrutura assim?A consulta atualmente é essa:f=context.portal_catalog

(portal_type=types,
review_state=estados,
path={'query':'/'.join(context.getPhysicalPath())})Muito obrigado.
--JJ (|´:¬{)»-Deus escreve certo por linhas certas. Nós é que enxergamos torto.- 






Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]






  




  
Yahoo! Grupos, um serviço oferecido por:
  
  




  
  



  




  
Links do Yahoo! Grupos

Para visitar o site do seu grupo na web, acesse:http://br.groups.yahoo.com/group/zope-pt/

Para sair deste grupo, envie um e-mail para:[EMAIL PROTECTED]

O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.








-- Fabiano Weimar dos SantosPlone Developer and Consultant






Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]





  




  
Yahoo! Grupos, um serviço oferecido por:
  
  


  
  

  
  



  




  
Links do Yahoo! Grupos

Para visitar o site do seu grupo na web, acesse:http://br.groups.yahoo.com/group/zope-pt/
Para sair deste grupo, envie um e-mail para:[EMAIL PROTECTED]
O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.









Re: [Zope-pt] Estrutura de diretórios pelo portal_catalog

2005-10-11 Por tôpico Rodrigo Dias Arruda Senra
On Tue, 11 Oct 2005 10:04:57 -0300
JJ (Arnaldo Janz Júnior) [EMAIL PROTECTED] wrote:

 Olá, pessoALL!
 
 Estamos montando uma estrutura de diretórios (p/ tentar ilustrar, a idéia é
 algo como o navtree ou o sitemap) via consulta no portal_catalog. Tudo
 corria bem exceto o fato de que estamos obtendo TODA a estrutura no mesmo
 nível, ou seja, ñ conseguimos identificar quem é filho de quem.
 Pelo que parece, não existe índice que guarde isso (quem é filho de quem) no
 portal_catalog, não é? E, se realmente não, alguém sabe como poderíamos
 fazer?
 Tentamos o produto ExtendedPathIndex p/ usarmos depth com um índice path do
 tipo ExtendedPathIndex - salvo engano, como no Plone 2.1 - mas não deu
 certo, ainda não conseguimos o resultado esperado (e, de fato, não me parece
 a solução, já que só reduz a quantidade de níveis a descer).
 Estamos usando Plone 2.0.5 + Zope 2.7.7.
 Alguém pode ajudar? Alguém já precisou construir uma estrutura assim?

Serve achar quem é o pai de quem ao invés de quem é filho de quem ;o)

Experimente algo assim:

::

result = context.cancun.portal.portal_catalog(portal_type=AnuncioBalada)
for i in result:
obj = i.getObject()
caminho_genealogico = []
while obj:
try:
caminho_genealogico.append(obj.getId())
obj = obj.aq_parent
except:
break

# pretty-print
caminho_genealogico.reverse()
for level,Id in enumerate(caminho_genealogico):
print \t*level, Id

break # descomente para testar só 1 iteração
return printed


Abração,
Senra


Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/zope-pt/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html