コード例 #1
0
ファイル: PageManager.py プロジェクト: sernst/StaticFlow
    def query(self, attribute, **kwargs):
        if 'filter' in kwargs:
            attrCompareFilter = ArgsUtils.get('filter', None, kwargs)
            attrExistsFilter  = False
        else:
            attrCompareFilter = None
            attrExistsFilter  = ArgsUtils.get('exists', True, kwargs)

        localOnly = ArgsUtils.get('localOnly', False, kwargs)
        out       = []

        #--- FILTER
        #       Filter the pages according to the specified kwargs and the initialization above
        for page in self._pages:
            #--- EXISTS FILTER ---#
            if attrExistsFilter:
                if page.has(attribute, localOnly=localOnly):
                    out.append(page)
                continue

            #--- COMPARE FILTER ---#
            value = page.get(attribute, defaultValue=ArgsUtils.get('defaultValue', None, kwargs))
            if value == attrCompareFilter:
                out.append(page)

        #--- SORTING ---#
        reverseSort = ArgsUtils.get('reverse', False, kwargs)
        if ArgsUtils.get('dateSort', False, kwargs):
            return PageProcessUtils.sortPagesByDate(out, reverse=reverseSort)
コード例 #2
0
ファイル: PageManager.py プロジェクト: sernst/StaticFlow
    def getPagesInFolder(self, folder, dateSort =False, reverse =False, limit =0):
        res  = []
        folder = folder.replace('\\', '/').strip().strip('/').split('/')
        path = FileUtils.createPath(self._site.targetWebRootPath, *folder, isDir=True)
        for page in self._pages:
            if page.targetPath.startswith(path):
                res.append(page)

        if dateSort:
            res = PageProcessUtils.sortPagesByDate(pages=res, reverse=reverse)

        if len(res) > limit > 0:
            res = res[:limit]
        return res