def get(self, blog_id): if self.user: username = self.user.name key = db.Key.from_path("Blog", int(blog_id), parent=blog_key()) post = db.get(key) if not post: self.redirect("/accessdenied") likes = Like.by_blog_id(post) unlikes = Unlike.by_blog_id(post) post_comments = Comment.all_by_blog_id(post) comments_count = Comment.count_by_blog_id(post) if self.user: self.render("post.html", post=post, likes=likes, unlikes=unlikes, post_comments=post_comments, comments_count=comments_count, username=username) else: self.render("post.html", post=post, likes=likes, unlikes=unlikes, post_comments=post_comments, comments_count=comments_count)
def post(self, blog_id): key = db.Key.from_path("Blog", int(blog_id), parent=blog_key()) post = db.get(key) user_id = User.by_name(self.user.name) comments_count = Comment.count_by_blog_id(post) post_comments = Comment.all_by_blog_id(post) likes = Like.by_blog_id(post) unlikes = Unlike.by_blog_id(post) previously_liked = Like.check_like(post, user_id) previously_unliked = Unlike.check_unlike(post, user_id) username = self.user.name if self.user: if self.request.get("like"): puk = post.user.key().id() ubn = User.by_name(self.user.name).key().id() if puk != ubn: # These variables were only creatd to shorten the lenght of the line of code here since it was more than 79 chars. if previously_liked == 0: l = Like(post=post, user=User.by_name(self.user.name)) l.put() time.sleep(0.1) self.redirect('/post/%s' % str(post.key().id())) else: error = "You have already liked this post" self.render("post.html", post=post, likes=likes, unlikes=unlikes, error=error, comments_count=comments_count, post_comments=post_comments, username=username) else: error = "It's not allowed to like your own posts" self.render("post.html", post=post, likes=likes, unlikes=unlikes, error=error, comments_count=comments_count, post_comments=post_comments, username=username) if self.request.get("unlike"): puk = post.user.key().id() ubn = User.by_name(self.user.name).key().id() if puk != ubn: if previously_unliked == 0: ul = Unlike(post=post, user=User.by_name(self.user.name)) ul.put() time.sleep(0.1) self.redirect('/post/%s' % str(post.key().id())) else: error = "You have already unliked this post" self.render("post.html", post=post, likes=likes, unlikes=unlikes, error=error, comments_count=comments_count, post_comments=post_comments, username=username) else: error = "It's not allowed to unlike your own posts" self.render("post.html", post=post, likes=likes, unlikes=unlikes, error=error, comments_count=comments_count, post_comments=post_comments, username=username) if self.request.get("add_comment"): comment_text = self.request.get("comment_text") if comment_text: c = Comment(post=post, user=User.by_name(self.user.name), text=comment_text) c.put() time.sleep(0.1) self.redirect('/post/%s' % str(post.key().id())) else: comment_error = "Use the textarea to enter a post, please" self.render("post.html", post=post, likes=likes, unlikes=unlikes, comments_count=comments_count, post_comments=post_comments, comment_error=comment_error, username=username) if self.request.get("edit"): puk = post.user.key().id() ubn = User.by_name(self.user.name).key().id() if puk == ubn: self.redirect('/edit/%s' % str(post.key().id())) else: error = "To edit a post you must be the author" self.render("post.html", post=post, likes=likes, unlikes=unlikes, comments_count=comments_count, post_comments=post_comments, error=error, username=username) if self.request.get("delete"): puk = post.user.key().id() ubn = User.by_name(self.user.name).key().id() if puk == ubn: db.delete(key) time.sleep(0.1) self.redirect('/') else: error = "To delete a post you must be the author" self.render("post.html", post=post, likes=likes, unlikes=unlikes, comments_count=comments_count, post_comments=post_comments, error=error, username=username) else: self.redirect("/login")