コード例 #1
0
ファイル: page.py プロジェクト: openplans/community-almanac
 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')
コード例 #2
0
 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')
コード例 #3
0
ファイル: page.py プロジェクト: openplans/community-almanac
    def _do_publish(self, almanac_slug):
        c.almanac = almanac = h.get_almanac_by_slug(almanac_slug)
        name = request.POST.get('name', u'')
        if not name:
            name = u'Unnamed'

        slug = Page.name_page(almanac, name)
        page = c.almanac.new_page(self.ensure_user, name=name, slug=slug)
        page.published = True

        meta.Session.commit()

        h.flash(u'Page created')
        redirect_to(h.url_for('page_view', almanac=almanac, page=page))
コード例 #4
0
    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')
コード例 #5
0
ファイル: page.py プロジェクト: openplans/community-almanac
    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')
コード例 #6
0
ファイル: static.py プロジェクト: openplans/community-almanac
 def about(self):
     c.no_maps = True
     c.latest_pages = Page.latest()
     return render('/about.mako')
コード例 #7
0
def get_page_by_id(page_id):
    try:
        return Page.by_id(page_id)
    except exc.NoResultFound:
        abort(404)
コード例 #8
0
def get_page_by_slug(almanac, page_slug):
    try:
        return Page.get_by_slug(almanac, page_slug)
    except exc.NoResultFound:
        abort(404)
コード例 #9
0
ファイル: page.py プロジェクト: openplans/community-almanac
 def all_pages_kml(self, query):
     c.pages = Page.search_all(query).all()
     response.content_type = 'application/vnd.google-earth.kml+xml kml'
     return render('/page/kml.mako')