예제 #1
0
 def sort(self, almanac_slug, page_slug):
     almanac = h.get_almanac_by_slug(almanac_slug)
     if page_slug:
         page = h.get_page_by_slug(almanac, page_slug)
     else:
         page = almanac.new_page(self.ensure_user)
     return self._sort(page)
예제 #2
0
 def _do_edit(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)
     name = request.POST.get('name', u'')
     if name:
         # all we have to save is the name here for now
         c.page.name = name
         meta.Session.commit()
     h.flash(u'Page edited')
     redirect_to(h.url_for('page_view', almanac=c.almanac, page=c.page))
예제 #3
0
 def edit(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=True)
     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))
     c.is_add = False
     c.behalf = render('/page/behalf.mako')
     return render('/page/add_edit.mako')
예제 #4
0
    def _do_comment(self, almanac_slug, page_slug):
        almanac = h.get_almanac_by_slug(almanac_slug)
        page = h.get_page_by_slug(almanac, page_slug)

        comment = Comment(fullname=self.form_result['fullname'],
                          email=self.form_result['email'],
                          website=self.form_result['website'],
                          text=self.form_result['text'],
                          )
        comment.page_id = page.id
        meta.Session.add(comment)
        meta.Session.commit()
        h.flash(u'Comment added')
        redirect_to(h.url_for('page_view', almanac=almanac, page=page))
예제 #5
0
    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
    def evaluate(self, environ, credentials):

        user = c.user
        if not user:
            userid = session.setdefault('userid', None)
            if not userid:
                self.unmet()
            user = meta.Session.query(User).get(userid)
            if not user:
                self.unmet()

        almanac_slug = environ['pylons.routes_dict']['almanac_slug']
        page_slug = environ['pylons.routes_dict']['page_slug']

        almanac = h.get_almanac_by_slug(almanac_slug)
        page = h.get_page_by_slug(almanac, page_slug)

        if page.user_id == user.id:
            return
        if credentials and \
           'manage' in credentials.get('permissions'):
            return
        self.unmet()
예제 #7
0
 def _retrieve_page(self, almanac, page_slug):
     if page_slug is None:
         return almanac.new_page(self.ensure_user)
     else:
         return h.get_page_by_slug(almanac, page_slug)