def all_pages(self, query): c.no_maps = True c.query_global = query if query: pages_query = Page.search_all(query) else: pages_query = Page.latest(query_only=True) page_idx = request.GET.get('page', 1) try: page_idx = int(page_idx) except ValueError: page_idx = 1 per_page = 10 pagination = PaginationPage(pages_query, page=page_idx, items_per_page=per_page) c.pagination_data = h.pagination_data(pagination) c.pages = pagination.items c.npages = pagination.item_count c.latest_pages = Page.latest() return render('/search_all.mako')
def home(self): page_idx = request.GET.get('page', 1) try: page_idx = int(page_idx) except ValueError: page_idx = 1 almanac_query = meta.Session.query(Almanac).join(Almanac.pages).distinct().order_by(Almanac.modified.desc()) c.count = almanac_query.count() h.setup_pagination(almanac_query, page_idx) c.almanacs = c.pagination.items # Almanacs are slightly smaller on the page, we need to show slightly less so that the almanacs are resting on the shelf. c.pages = Page.latest(limit=(max(len(c.almanacs)-2,0))) c.is_homepage = True return render('/home.mako')
def search(self, almanac_slug, query): c.almanac = h.get_almanac_by_slug(almanac_slug) loc = c.almanac.location_4326 c.lng, c.lat = loc.x, loc.y page_idx = request.GET.get('page', 1) try: page_idx = int(page_idx) except ValueError: page_idx = 1 per_page = 10 pagination = PaginationPage(c.almanac.search(query), page=page_idx, items_per_page=per_page) c.pagination_data = h.pagination_data(pagination) c.pages = pagination.items c.npages = pagination.item_count c.query = query # latest pages for sidebar c.latest_pages = Page.latest(limit=10, almanac_id=c.almanac.id) return render('/almanac/search.mako')
def view(self, almanac_slug, page_slug): c.almanac = h.get_almanac_by_slug(almanac_slug) c.page = h.get_page_by_slug(c.almanac, page_slug) c.media_items = h.render_media_items(c.page.media, editable=False) c.no_maps = True for media in c.page.media: if isinstance(media, Map): c.no_maps = False break map_features = h.map_features_for_media(c.page.media) c.map_features = h.literal(simplejson.dumps(map_features)) flow_data = h.flowplayer_data_for_media(c.page.media) c.flow_data = h.literal(simplejson.dumps(flow_data)) page_navigation = c.page.page_navigation() c.next_page = page_navigation['next'] c.prev_page = page_navigation['prev'] c.latest_pages = Page.latest(almanac_id=c.almanac.id) if g.captcha_enabled and not c.user: c.captcha_html = h.literal(recaptcha.client.captcha.displayhtml(g.captcha_pubkey)) c.is_page_owner = is_met(is_page_owner()) c.is_admin = is_met(has_permission('manage')) return render('/page/view.mako')
def about(self): c.no_maps = True c.latest_pages = Page.latest() return render('/about.mako')