2011-04-01 6 views
1

컬렉션에 다른 수준의 정렬을 추가하는 방법은 어떻게됩니까?컬렉션의 다중 레벨 정렬

예 : 부동산 사이트가 판매를위한 속성의 목록을 가지고있다. 목록은 컬렉션을 사용하여 얻을 수 있습니다. 판매 된 부동산은 목록 하단에 있어야하지만 나머지는 가격별로 정렬해야합니다.

답변

1

당신되지 않은 추가 코딩 없이는 할 수 있습니다. Zope 카탈로그는 다중 레벨 정렬을 자체적으로 지원하지 않기 때문에 수동으로 카탈로그 조회 결과를 정렬해야한다. 결과 집합 크기에 따라 상당히 효과적 일 수 있습니다.

이 경로로 이동하려면 ATContentTypes.content.topic.ATTopic 클래스의 하위 클래스를 만들고 queryCatalog 메서드를 재정의하거나 토픽 뷰의 새 스킨 버전을 만들어 차례대로 다른 메서드를 호출해야합니다 queryCatalog를 호출하여 추가 정렬을 적용 할 수 있습니다.

말할 필요도없이

이 어떤 플론 (Plone)과 파이썬 전문 지식을 필요로한다.

3

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

는 자바 스크립트 땅에서이 작업을 수행합니다. 괜찮으 시다면요. 그렇지 않으면이 지수는 :

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

당신이 컬렉션을 정렬하는 새 필드를 만드는 데 도움이 수 있습니다.

또 다른 방법은 판매 된 속성에 음수의 가격을 지정하고 표시하지 않을 수 있으므로 정렬은 예상대로 작동합니다.

+1

잊어 버린 : http://pypi.python.org/pypi/Products.AdvancedQuery/3.0.1 "AdavancedQuery는 임의의 수준의 필드 색인 정렬을 지원합니다" – Yuri

1

당신은 중첩 된 컬렉션을 만들 수 있습니다. 기본 이벤트 컬렉션과 마찬가지로 '과거 이벤트'컬렉션이 있습니다. 동일한 목록에 중첩 컬렉션의 개체를 표시 할 수는 없지만 최소한 "과거 이벤트"큰 링크가 표시됩니다.

이 방법을 사용하면 판매 된 속성을 초기 컬렉션에서 제외해야하며 (sold은 카탈로그의 인덱스 여야 함) 중첩 된 속성 만 포함시켜야합니다.

+0

다음과 같은 새로운 브라우저보기를 만들 수 있습니까? 컬렉션과 하위 컬렉션의 항목을 같은 페이지에 표시 하시겠습니까? – winn

+0

확실히 그렇습니다. – marcosfromero

관련 문제