Esempio n. 1
0
    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)
Esempio n. 2
0
    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")