def get(self, post_key): """ Display a post and its comments Generate a form to post comments :param post_key: Key of the post to display """ form = CommentForm() is_liked = Like.is_liked_by_user(self.user, self.post) self.render_viewpost(form, is_liked)
def get(self, post_key): """ Like/Unlike a post An error is thrown if user likes his own post """ if self.post.parent().key() != self.user.key(): like_key = Like.is_liked_by_user(self.user, self.post) if not like_key: success = Like.new_like(self.user, self.post) else: success = Like.delete_like(like_key) if success: self.redirect_to("viewpost", post_key=post_key, _fragment="liked") else: self.abort(500) else: self.abort(404, "You can't like your own post")
def post(self, post_key): """ Create a new comment and redirect user to the post page If error, display form with error details :param post_key: Key of the post to display """ form = CommentForm(self.request.POST) is_liked = Like.is_liked_by_user(self.user, self.post) if form.validate(): comment_key = Comment.new_comment(form.content.data, self.user, self.post) if comment_key: self.redirect_to("viewpost", post_key=post_key, _fragment=str(comment_key)) else: self.abort(500) self.render_viewpost(form, is_liked)