集合的多级排序

时间:2011-04-01 04:09:47

标签: collections plone

我将如何为集合添加另一级别的排序。

示例:房地产网站列出了待售物业。列表是使用集合实现的。已售出的房产需要位于列表的底部,但其余的需要按价格排序。

3 个答案:

答案 0 :(得分:3)

http://plone.org/products/collective.flexitopic

在javascript版本中执行此操作。如果它对你没问题。否则这个索引:

http://www.dieter.handshake.de/pyprojects/zope/#ManagableIndex

可以帮助您创建一个新字段来对集合进行排序。

另一种方法可能是为卖出的物品提供负价而不显示它,因此排序可以按预期工作。

答案 1 :(得分:1)

你不能没有额外的编码。在检索目录查询结果后,您必须手动对目录查询结果进行排序,因为Zope目录本身不支持多级排序。根据您的结果集大小,这也可能非常有效。

如果你想要这条路线,你必须要么子类化ATContentTypes.content.topic.ATTopic类并覆盖queryCatalog方法,要么创建主题视图的新皮肤版本来调用另一个方法,然后再调用调用queryCatalog,以便您可以对其应用其他排序。

毋庸置疑,这需要一些Plone和python的专业知识。

答案 2 :(得分:1)

您可以创建嵌套的Collection。与默认的Events Collection一样,它具有“Past events”集合。 我相信你不能在同一个列表中显示嵌套集合的对象,但至少你会看到一个“过去的事件”大链接。

使用此方法,您应该从初始集合中排除已售出的属性(sold必须是目录中的索引),并且仅包含嵌套属性中的已售属性。