Pessoal que chegar ate o fim dessa thread... Se eu tivesse pensado um pouco
melhor, teria utilizado pastas espertas. É so ter um pasta privada como
repositório e criar uma que sera a acessada com o sort do jeito que vc
quiser (não precisa nem escrever código).
Mas valeu pelo aprendizado.
[]s
Rafael

Em 29/05/07, Rafael Rocha <[EMAIL PROTECTED]> escreveu:

Bom pessoal,
Com a ajuda do Zenrique consegui...
Segue o codigo modificado pra ficar de exemplo:

  <tal:foldercontents define="contentFilter contentFilter |
python:{'sort_order':'descending'};
                            limit_display
limit_display|request/limit_display|nothing;
                            more_url
more_url|request/more_url|string:folder_contents;
                            contentsMethod python:test(
here.portal_type=='Topic', here.queryCatalog, here.getFolderContents);
                            folderContents
folderContents|python:contentsMethod(contentFilter, batch=True);
                            use_view_action
site_properties/typesUseViewActionInListings|python:();
                            over_limit python: limit_display and
len(folderContents) > limit_display;
                            folderContents python: (over_limit and
folderContents[:limit_display]) or folderContents;
                            batch folderContents">
        <tal:listing condition="folderContents">

[]s
rafa

Em 28/05/07, José Henrique <[EMAIL PROTECTED]> escreveu:
>
>   Rafael,
>
> Estudando um pouco
> mais o código de folder_summary_view, descobri que você não precisa fazer
> nenhuma customização.  Logo na primeira dlinha de <tal:foldercontents> há a 
definição de
>
> contentFilter.  Pois bem, você pode passar, por meio dessa variável, um
> dicionário com parâmetros
> para customizar sua busca.
>
> Para você verificar como isso é possível, crie um script python na raiz
> do seu site com o seguinte
> conteúdo:
>
> request = container.REQUEST
> request.set('contentFilter',{'sort_order':'descending'})
> return context.folder_summary_view()
>
> Mude depois para:
> request.set('contentFilter',{'sort_order':'ascending'})
>
> e o resultado será inverso.  Assim, basta configurar contentFilter da
> forma que você quiser e depois
> chamar folder_summary_view.  Simples, não?
>
> Zénrique.
>
> Em 28/05/07, Rafael Rocha < [EMAIL PROTECTED] > escreveu:
> >
> >  Obrigado pela ajuda Jose,
> >
> > Segue meu codigo, as linhas alteradas ou adicionadas sao as que tem
> > comentario. Meu objetivo que nesse template ele exiba as materias mais
> > recentes primeiro. Estou tentando mudar no template folder_summary_view,
> > porque creio que se mexer no getFoldercontents posso melar outros lugares...
> >
> >
> > <tal:foldercontents define="contentFilter
> > contentFilter|request/contentFilter|nothing;
> > limit_display
> > limit_display|request/limit_display|nothing;
> > more_url
> > more_url|request/more_url|string:folder_contents;
> > contentsMethod
> > python:test(here.portal_type=='Topic', here.queryCatalog,
> > here.getFolderContents ); # aqui tentei tambem
> > here.getFolderContents.reverse()
> > folderContents
> > folderContents|python:contentsMethod(contentFilter, batch=True); #
> > aqui tentei tambem contentsMethod(contentFilter, batch=True).reverse()
> > use_view_action
> > site_properties/typesUseViewActionInListings|python:();
> > over_limit python: limit_display and
> > len(folderContents) > limit_display;
> > folderContents python: (over_limit and folderContents[:limit_display])
> > or folderContents;
> > folderContents python: floderContentents.reverse()   # tentei tambem
> > list.reverse(folderContents)
> >  #tentei tambem here.reverseList(folderContents)
> > batch folderContents">
> > <tal:listing condition="folderContents">
> >
> >
> > []s
> > rafael
> >
> >
> > Em 28/05/07, José Henrique < [EMAIL PROTECTED]> escreveu:
> > >
> > > Quanto ao seu problema com reverse, envie
> > > o seu código para que a gente possa avaliar.
> > > Quanto a sua duvida a respeito do script reverseList, me parece que
> > > seu objetivo é simplesmente possibilitar a inversão do conteúdo de tuplas
> > > (que não permitem a utilização de reverse).
> > >
> > > Zénrique.
> > >
> > >
> > > Em 26/05/07, Rafael Rocha < [EMAIL PROTECTED] > escreveu:
> > > >
> > > > Pessaol,
> > > > pesquisando um pouco descobri que o Plone tem um script chamado
> > > > reverseList...
> > > > Primeira pergunta: Qual a necessidade desse script?
> > > > Segunda: porque ele usa o Mylist.reverse() e nao gera um
> > > > attributte error?
> > > > Tentei resolver meu problema usando esse script
> > > > dentro do define
> > > > folderContents python: here.reverseList(folderContents);
> > > >
> > > > Aí ele passa essa linha, mas da um erro na de baixo
> > > > batch folderContents
> > > > list indices must be integers...
> > > >
> > > > Onde estou escorregando?
> > > >
> > > > []s
> > > > rafael
> > > >
> > > >  Em 26/05/07, Rafael Rocha < [EMAIL PROTECTED]> escreveu:
> > > > >
> > > > > Ola pessoal,
> > > > >
> > > > > Segui as instruções, porem ao tentar folderContents.reverse (),
> > > > > ou ainda list.reverse(folderContens) recebo um attribute error
> > > > > de que nao existe o atributo reverse, nem em FolderContents, nem em 
List...
> > > > > Meu Plone é versao 2.5, assim, acho que tenho uma versao
> > > > > razoavelmente nova do python... Alguem sabe o que pode ser?
> > > > > []s
> > > > > Rafa
> > > > >
> > > > > Em 23/05/07, Rafael Rocha < [EMAIL PROTECTED]> escreveu:
> > > > > >
> > > > > > Zenrique,
> > > > > >
> > > > > >   Valeu cara muito obrigado. Melhor que dar um peixe a um
> > > > > > homem é ensiná-lo a pescar...
> > > > > >   Realmente, explorando sempre chegamos lá, creio que é um mal
> > > > > > (pelo menos quem quer aprender) a preguiça que vem do é tão mais 
fácil
> > > > > > perguntar, hehe.
> > > > > > []s
> > > > > > Rafael
> > > > > >
> > > > > > Em 23/05/07, José Henrique < [EMAIL PROTECTED]> escreveu:
> > > > > > >
> > > > > > > Rafael,
> > > > > > >
> > > > > > > Se você olhar com atenção o conteúdo
> > > > > > > da tag <tal:foldercontents> e as tags posteriores você vai notar 
que:
> > > > > > >
> > > > > > > 1. O que é listado no page template é o conteúdo de
> > > > > > > folderContents:
> > > > > > > <div class="tileItem visualIEFloatFix vevent"
> > > > > > > tal:repeat="item folderContents">
> > > > > > > 2. folderContents é definido como:
> > > > > > > folderContents|python:contentsMethod(contentFilter,
> > > > > > > batch=True);
> > > > > > > ou seja:
> > > > > > > a) se ele já existir, então é ele mesmo,
> > > > > > > b) senão, será obtido de contentsMethod()
> > > > > > > 3. contentsMethod é definido como:
> > > > > > > python:test(here.portal_type=='Topic', here.queryCatalog ,
> > > > > > > here.getFolderContents);
> > > > > > > 4. Mais um pouquinho de procura e você vai ver que
> > > > > > > queryCatalog e getFolderContents são dois scripts que se 
encontram em
> > > > > > > portal_skins/plone_scripts;
> > > > > > > 5. Indo um pouco mais a fundo, você vai notar que ambos os
> > > > > > > scripts retornam uma lista.
> > > > > > > 6.
> > > > > > > Para inverter a ordem de uma lista, basta utilizar o método 
reverse:
> > > > > > > folderContents.reverse(), por exemplo.
> > > > > > >
> > > > > > > Espero ter ajudado não só a solucionar seu problema, mas
> > > > > > > também mostrar que não é tão difícil assim descobrir como as 
coisas
> > > > > > > funcionam no Plone.
> > > > > > >
> > > > > > > Zénrique.
> > > > > > >
> > > > > > >
> > > > > > > Em 22/05/07, Rafael Rocha < [EMAIL PROTECTED]>
> > > > > > > escreveu:
> > > > > > > >
> > > > > > > >
> > > > > > > > Leonardo,
> > > > > > > > ainda nao consegui fazer isso funcionar... Sera que alguem
> > > > > > > > tem um exemplo de codigo?
> > > > > > > > []s
> > > > > > > > rafael
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> >


Responder a