在folder_contents中反转Plone默认排序顺序

Aar*_*ams 4 sorting directory plone archetypes dexterity

如何使我的文件夹自定义类型在folder_contents视图中以反向时间顺序显示它的对象列表?

默认是列表顶部最旧的对象,我希望新添加的对象位于列表顶部.

如果Plone开箱即用这个功能会很好......如果它有,我找不到它.

Ida*_*kes 9

要实际更改其父级中的obj位置,您可以利用Zope2的接口OFS.IOrderedContainer来访问相关方法并将其连接起来zope.lifecycleevent.interfaces.IObjectAddedEvent,就像在这个Plone-addon" adi.revertorder "(免责声明:author = meh)中一样:

configure.zcml注册eventlistener时:

<subscriber for="Products.CMFCore.interfaces.IContentish
                 zope.lifecycleevent.interfaces.IObjectAddedEvent"
            handler=".subscriber.revertOrder" />
Run Code Online (Sandbox Code Playgroud)

在处理程序(这里:)中subscriber.py,定义被调用的方法:

from Acquisition import aq_inner
from Acquisition import aq_parent

from OFS.interfaces import IOrderedContainer

def revertOrder(obj, eve):
    """
    Use IOrderedContainer interface to move an object to top of folder on creation.
    """
    parent = obj.aq_inner.aq_parent
    ordered = IOrderedContainer(parent, None)
    if ordered is not None:
        ordered.moveObjectToPosition(obj.getId(), 0)
Run Code Online (Sandbox Code Playgroud)

适用于基于敏捷原型的内容类型.

另见文档:http://docs.plone.org/external/plone.app.dexterity/docs/advanced/event-handlers.html