2011-04-01 42 views
1

我将如何去添加另一级别的排序集合。集合的多级分类

例如:一个房地产网站有物业出售清单。列表是使用集合实现的。出售的物业需要在列表的底部,但其余的需要按价格排序。

回答

1

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

如果你想走这条路线,你必须继承ATContentTypes.content.topic.ATTopic类并覆盖queryCatalog方法,或创建主题视图的新外观版本来调用不同的方法然后调用queryCatalog,以便可以对其应用其他排序。不用说,这需要一些Plone和Python的专业知识。

3

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

在javascript的土地上这样做。如果它适合你。否则,此指数:

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

可以帮助你创建一个新的字段进行排序集合。

另一种方法可能是给售出的属性一个负价格而不显示它,因此排序会按预期工作。

+1

忘记:http://pypi.python.org/pypi/Products.AdvancedQuery/3.0.1 “AdavancedQuery支持的田间指标任意级别排序” – Yuri 2011-04-01 09:07:12

1

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

通过这种方法,您应该从初始集合中排除出售的属性(sold必须是您的目录中的索引),并且只包含嵌套销售的属性。

+0

难道那么可以创建一个新的浏览器查看将在同一页面上显示集合和子集合中的项目? – winn 2011-04-01 14:24:18

+0

肯定会的。 – marcosfromero 2011-04-01 14:52:32