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")
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)
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)
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')
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")