[zope-pt] Re: ordenar objetos dentro de um Folder
Opa Walter, Há uns meses atrás, eu migrei as noticias de um mambo para o plone. Ontem, migrei o resto das notícias. Porém, a ordenação delas ficou errada dentro da pasta. Dá pra arrastar e soltar, mas isso é contraproducente. Tem alguma API do zope pra reordenar o conteúdo da pasta, baseado nos atributos dos objetos dentro dela? tem sim, desde que implemente a interface IAutoSortSupport, que é o que o Folder padrão do Plone faz. Confere a API da coisa: http://dev.plone.org/collective/browser/ATContentTypes/trunk/lib/autosort.py#L41 Se quiseres ordenar manualmente, mas por código, confere: http://dev.plone.org/archetypes/browser/Archetypes/branches/1.5/interfaces/_orderedfolder.py#L36 HTH, -- Dorneles Treméa X3ng Web Technology http://nosleepforyou.blogspot.com
Re: [zope-pt] Re: ordenar objetos dentro de um Folder
cidades é o nome do portal Dentro da pasta destaques, tenho tres noticias.. , BB e CC a ordem que eu coloquei na interface do Plone é: BCA, que é como mostra. Dentro do zopectl debug: import transaction from AccessControl.SecurityManagement import newSecurityManager t = transaction.get() portal = app.cidades admin= app.acl_users.getUser('admin').__of__(app.acl_users) newSecurityManager(None, admin) portal['ministerio-das-cidades']['destaques'].getSortAuto() True portal['ministerio-das-cidades']['destaques'].setDefaultSorting('Title',True) t.commit() Mas ao acessar a pasta, continua a ordem B,C,A []'s - Walter
[zope-pt] Re: ordenar objetos dentro de um Folder
Opa Walter, Segui o procedimento: zopectl debug lá dentro, alkgo do tipo: pasta.setDefaultSorting('atributo') Mas não é ordenado ainda na visualização. Precisa reindexar ou algo a mais? 3 perguntas: - qual o nome do atributo que passaste para o setDefaultSorting? - verificaste com o pasta.getSortAuto() para ver se o autosort está ativo (e caso não estiver: pasta.setSortAuto(True)) - por acaso não esqueceste de comitar a transação pelo zopectl debug (import transaction; transaction.commit())? :-) HTH, -- Dorneles Treméa X3ng Web Technology http://nosleepforyou.blogspot.com
Re: [zope-pt] Re: ordenar objetos dentro de um Folder
Valeu Dornéles e Wesley! O conteúdo é um Folder padrão do plone mesmo. Segui o procedimento: zopectl debug lá dentro, alkgo do tipo: pasta.setDefaultSorting('atributo') Mas não é ordenado ainda na visualização. Precisa reindexar ou algo a mais? []'s - Walter 2008/1/11 Dorneles Treméa [EMAIL PROTECTED]: Opa Walter, Há uns meses atrás, eu migrei as noticias de um mambo para o plone. Ontem, migrei o resto das notícias. Porém, a ordenação delas ficou errada dentro da pasta. Dá pra arrastar e soltar, mas isso é contraproducente. Tem alguma API do zope pra reordenar o conteúdo da pasta, baseado nos atributos dos objetos dentro dela? tem sim, desde que implemente a interface IAutoSortSupport, que é o que o Folder padrão do Plone faz. Confere a API da coisa: http://dev.plone.org/collective/browser/ATContentTypes/trunk/lib/autosort.py#L41 Se quiseres ordenar manualmente, mas por código, confere: http://dev.plone.org/archetypes/browser/Archetypes/branches/1.5/interfaces/_orderedfolder.py#L36 HTH, -- Dorneles Treméa X3ng Web Technology http://nosleepforyou.blogspot.com
Re: [zope-pt] Re: ordenar objetos dentro de um Folder
Isso é apenas um passo.. quero ordenar pelo atributo data_noticia (temos um tipo de Noticia que estende o News padrão) []'s - Walter On Jan 11, 2008 2:54 PM, Walter Cruz [EMAIL PROTECTED] wrote: cidades é o nome do portal Dentro da pasta destaques, tenho tres noticias.. , BB e CC a ordem que eu coloquei na interface do Plone é: BCA, que é como mostra. Dentro do zopectl debug: import transaction from AccessControl.SecurityManagement import newSecurityManager t = transaction.get() portal = app.cidades admin= app.acl_users.getUser('admin').__of__(app.acl_users) newSecurityManager(None, admin) portal['ministerio-das-cidades']['destaques'].getSortAuto() True portal['ministerio-das-cidades']['destaques'].setDefaultSorting('Title',True) t.commit() Mas ao acessar a pasta, continua a ordem B,C,A []'s - Walter
[zope-pt] Re: ordenar objetos dentro de um Folder
Opa Walter, import transaction from AccessControl.SecurityManagement import newSecurityManager t = transaction.get() portal = app.cidades admin= app.acl_users.getUser('admin').__of__(app.acl_users) newSecurityManager(None, admin) portal['ministerio-das-cidades']['destaques'].getSortAuto() True portal['ministerio-das-cidades']['destaques'].setDefaultSorting('Title',True) t.commit() Mas ao acessar a pasta, continua a ordem B,C,A pelo que eu percebi, aparentemente em algum lugar do Plone está faltando uma chamada ao método autoOrderItems: http://dev.plone.org/collective/browser/ATContentTypes/trunk/lib/autosort.py#L113 E mesmo se você chamar manualmente ele dentro do zopectl debug, a pasta ainda não ficará ordenada, pois esse método não está atualizando o cátalogo, você teria que fazer isso também... Resumindo: aparentemente ninguém usou esse recurso até hoje... :-) Eu diria que para isso funcionar como o esperado, ao adicionar novos items na pasta o autoOrderItems deveria ser chamado, e ele deveria atualizar o catálogo. Pesquisando um pouco achei esse ticket: http://dev.plone.org/plone/ticket/5262 É algo relativamente simples de ser feito... :-) -- Dorneles Treméa X3ng Web Technology http://nosleepforyou.blogspot.com