2011-04-01 74 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