我将如何为集合添加另一级别的排序。
示例:房地产网站列出了待售物业。列表是使用集合实现的。已售出的房产需要位于列表的底部,但其余的需要按价格排序。
答案 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
必须是目录中的索引),并且仅包含嵌套属性中的已售属性。