Example #1
0
    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)
Example #2
0
    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")
Example #3
0
    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)