def load_homepage_pages(self): pages = PageCollection(self.session()).query() pages = pages.filter(Topic.type == 'topic') # XXX use JSON/JSONB for this (the attribute is not there if it's # false, so this is not too bad speed-wise but it's still awful) pages = pages.filter(Topic.meta.contains( 'is_visible_on_homepage' )) result = defaultdict(list) for page in pages.all(): if page.is_visible_on_homepage: result[page.root.id].append(page) for key in result: result[key] = list(sorted( result[key], key=lambda p: utils.normalize_for_url(p.title) )) return result
def root_pages(self): query = PageCollection(self.app.session()).query(ordered=False) query = query.order_by(desc(Page.type), Page.order) query = query.filter(Page.parent_id == None) return self.request.exclude_invisible(query.all())