Exemple #1
0
    def post(self):
        if not self.user:
            return self.redirect('/login')

        subject = self.request.get('subject')
        content = self.request.get('content')

        blog_name = self.request.get('blog_name', tools.DEFAULT_BLOG_NAME)

        if subject and content:
            new_post = tools.Post(
                parent=tools.blog_key(blog_name),
                subject=subject,
                content=content,
                author=tools.User._by_name(self.user.name).key,
                authname=tools.User._by_name(self.user.name).name,
                likes=0,
                likers=[])
            new_post.put()
            self.redirect('/%s' % str(new_post.key.id()))

        else:
            error = "Include subject and content please!"
            self.render_page("new-post.html",
                             subject=subject,
                             content=content,
                             error=error)
Exemple #2
0
    def get(self, post_id):
        key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        p = key.get()

        if p is not None:
            self.render_page("delete-post.html", p=p, username=self.user.name)
        else:
            return self.redirect('/blog')
Exemple #3
0
    def get(self, post_id, comment_id):
        p_key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        p = p_key.get()
        c_key = tools.ndb.Key(tools.Comment, int(comment_id), parent=p_key)
        c = c_key.get()

        self.render_page("delete-comment.html",
                         p=p,
                         c=c,
                         username=self.user.name)
Exemple #4
0
    def get(self, post_id, comment_id):
        p_key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        p = p_key.get()
        c_key = tools.ndb.Key(tools.Comment, int(comment_id), parent=p_key)
        c = c_key.get()

        if c is not None:
            self.render_page("edit-comment.html",
                             p=p,
                             c=c,
                             username=self.user.name)
        else:
            self.redirect('/%s' % str(p.key.id()))
Exemple #5
0
    def get(self, post_id, comment_id):
        p_key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        c_key = tools.ndb.Key(tools.Comment, int(comment_id), parent=p_key)
        c = c_key.get()
        cauth = c.author.get()

        if not c:
            return self.redirect('/')

        if self.user:
            self.render_page("c_permalink.html", c=c, username=self.user.name)
        else:
            self.render_page("c_permalink.html", c=c)
Exemple #6
0
    def post(self, post_id):
        if not self.user:
            return self.redirect('/login')

        key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        p = key.get()

        if p is not None:
            if self.user.key == p.author:
                p.key.delete()
                self.redirect('/')
        else:
            return self.redirect('/blog')
Exemple #7
0
    def post(self, post_id):
        if not self.user:
            self.redirect('/login')
        else:
            key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
            post = key.get()

            liker = self.user.name

            if liker in post.likers:
                post.likes = post.likes - 1
                post.likers.remove(liker)
                post.put()
                self.redirect('/')
Exemple #8
0
    def post(self, post_id, comment_id):
        if not self.user:
            return self.redirect('/login')

        p_key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        c_key = tools.ndb.Key(tools.Comment, int(comment_id), parent=p_key)
        c = c_key.get()

        if c is not None:
            if self.user.key == c.author:
                post_id_str = c.post_parent_id
                c.key.delete()
                self.redirect('/' + post_id_str + '#comments')
        else:
            self.redirect('/' + post_id_str)
Exemple #9
0
    def post(self, post_id):
        if not self.user:
            return self.redirect('/login')

        key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        p = key.get()

        if p is not None:
            if self.user.key == p.author:
                p.subject = self.request.get('subject')
                p.content = self.request.get('content')
                p.put()
                self.redirect('/%s' % str(p.key.id()))
        else:
            return self.redirect('/blog')
Exemple #10
0
    def post(self, post_id):
        if not self.user:
            return self.redirect('/login')

        key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        post = key.get()

        post_id_str = str(post.key.id())

        c = tools.Comment(parent=post.key)
        c.post_parent_id = post_id_str
        c.author = tools.User._by_name(self.user.name).key
        c.authname = tools.User._by_name(self.user.name).name
        c.content = self.request.get('comment_content')
        c.put()

        self.redirect('/' + post_id_str + '#comments')
Exemple #11
0
    def post(self, post_id):
        if not self.user:
            self.redirect('/login')
        else:
            key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
            post = key.get()

            # Can't like your own post
            author = post.author
            liker = self.user.name

            if (author == liker) or (liker in post.likers):
                self.redirect('/nolike')
            else:
                post.likes = post.likes + 1
                post.likers.append(liker)
                post.put()
                self.redirect('/')
Exemple #12
0
    def get(self, post_id):
        key = tools.ndb.Key('Post', int(post_id), parent=tools.blog_key())
        post = key.get()
        post_auth = post.author.get()

        comments_query = tools.Comment.query(ancestor=post.key).order(
            tools.Comment.created)
        comments_for_post = comments_query.fetch()

        if not post:
            self.error(404)
            return

        if self.user:
            self.render_page("permalink.html",
                             post=post,
                             auth=post_auth,
                             comments=comments_for_post,
                             username=self.user.name)
        else:
            self.render_page("permalink.html",
                             post=post,
                             auth=post_auth,
                             comments=comments_for_post)