Example #1
0
    def post(self, article_key=None):
        article = Article.get(article_key)
        if article is None or not article.is_active:
            return self.error(404)

        errors = []
        content = self.request.get('content', '').strip()
        if not content:
            errors.append('Content cannot be empty')

        if errors:
            return self.render('revision_add.html', locals())

        user = self.get_current_user()
        rev = ArticleRevision(user=user, article=article,
                              content=content)
        rev.put()
        if user == article.creator:
            article.current_rev_key = str(rev.key())
        article.put()
        full_rev_url = urlparse.urljoin(self.request.uri, rev.href())
        blip = Blip.new(user, u'edited article %s %s' % (article.title,
                                                         full_rev_url))
        return self.redirect(article.href())