""" returns a subtree of folders sorted by title """ # Copyright © 2004 Saugus.net, Inc. # All Rights Reserved. # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. from ZTUtils import LazyFilter if not topNode: topNode=container.restrictedTraverse('/VirtualHosts/www.saugus.net') folders=[] sortableFolders=[] for folder in LazyFilter(topNode.objectValues(['Skinned Folder','Folder']),skip=''): if context.portal_membership.checkPermission('View',folder): if folder.Type()!='Links Folder' and folder.Type()!='Log Entry' \ and folder.Type()!='Definition' and folder.id!='Links' \ and not folder.dont_index: folderLowerCaseTitle=folder.title_or_id().lower() if folderLowerCaseTitle.startswith('the '): folderLowerCaseTitle=folderLowerCaseTitle[4:] elif folderLowerCaseTitle.startswith('an '): folderLowerCaseTitle=folderLowerCaseTitle[3:] elif folderLowerCaseTitle.startswith('a '): folderLowerCaseTitle=folderLowerCaseTitle[2:] sortableFolders.append((folderLowerCaseTitle,folder,context.getSubtree(folder))) if sortableFolders: sortableFolders.sort() for folderTuple in sortableFolders: folders.append((folderTuple[1],folderTuple[2])) return folders