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

 




Responder a