[zope-pt] Re: ordenar objetos dentro de um Folder

2008-01-11 Por tôpico Dorneles Treméa
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



Re: [zope-pt] Re: ordenar objetos dentro de um Folder

2008-01-11 Por tôpico Walter Cruz
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
>


Re: [zope-pt] Re: ordenar objetos dentro de um Folder

2008-01-11 Por tôpico Walter Cruz
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

2008-01-11 Por tôpico Dorneles Treméa
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

2008-01-11 Por tôpico Walter Cruz
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
>
>  


[zope-pt] Re: ordenar objetos dentro de um Folder

2008-01-11 Por tôpico Dorneles Treméa
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