Exemple #1
0
    def blog_comment_or_vote(self, redirect):
        """Comment or vote on a blog_post."""

        voteType = self.request.get("voteDirection")
        comment_id = self.request.get("comment_id")
        comment = self.request.get("comment").strip()
        delete_comment = self.request.get("delete_comment")
        blog_id = self.request.get("blog_id")
        blog_entry = BlogEntity.get_by_id_str(blog_id)
        if voteType and blog_entry:
            try:
                blog_entry = BlogEntity.get_by_id_str(blog_id)
                blog_entry.vote(voteBy=self.user, voteType=voteType)
                self.render("/thanks.html", redirect=redirect)
            except myExceptions.VoteOnOwnPostNotAllowed:
                self.redirect("/error?errorType=VoteOnOwnPostNotAllowed")
            except BadValueError:
                self.redirect("/error?errorType=BadValueError")
        elif comment and blog_entry:
            self.blog_comment(comment, blog_entry, comment_id, delete_comment,
                              redirect)
        elif blog_entry:
            self.redirect("/error?errorType=TooShort")
        else:
            self.redirect("/error?errorType=unknoswn")
Exemple #2
0
    def post(self):
        """Create/edit a blog-entry if logged in and form filled correcly."""
        title = self.request.get("title").strip()
        article = self.request.get("article").strip()

        # If user is editing a post, we should get a blog_id
        blog_id = self.request.get("blog_id")
        blog_entry = BlogEntity.get_by_id_str(blog_id)
        deletePost = bool(self.request.get("delete"))
        deletion_verified = bool(self.request.get("verify_deletion_checkbox"))
        cancel = bool(self.request.get("cancel"))
        if cancel:
            self.redirect('/blogs/%s' % blog_id)
        else:
            if not self.user:
                self.redirect('/login')
            elif deletePost:
                if deletion_verified:
                    self.delete_post(blog_entry)
                else:
                    self.render_this(blog_entry=blog_entry,
                                     title=title,
                                     article=article,
                                     verify_deletion=True)

            else:
                self.edit_post(blog_entry, title, article)
Exemple #3
0
 def get(self, blog_id):  # noqa
     """Retrieve the blog-id from the url and show it."""
     blog_entry = BlogEntity.get_by_id_str(blog_id)
     if not blog_entry:
         self.error(404)
         return
     self.render("blog_permalink.html",
                 article=blog_entry,
                 parser=self.render_blog_article)
Exemple #4
0
 def get(self):
     """If blog_id is in url, lookup BlogEntity and pass along"""
     blog_id = self.request.get("blog_id")
     blog_entry = BlogEntity.get_by_id_str(blog_id)
     if blog_entry:
         self.render_this(blog_entry=blog_entry,
                          title=blog_entry.title,
                          article=blog_entry.article)
     else:
         self.render('/error?error=NotValidBlogUser')
Exemple #5
0
    def test_blog_get_by(self):
        """get_by_id_str and by_title should return the correct BlogEntity"""
        james = UserEntity.register(username='******', password='******')

        a = BlogEntity.create_blog_entry(parent=blog_key(),
                                         title='a title',
                                         article='a content',
                                         created_by=james)

        a_id = str(a.key().id())

        self.assertEqual(BlogEntity.get_by_id_str(a_id).key().id(),
                         a.key().id(),
                         msg="'by_title' should return the 'a'-blog_entry")

        self.assertEqual(
            BlogEntity.by_title('a title').key().id(),
            a.key().id(),
            msg="'get_by_id_str' should return the 'a'-blog_entry")