コード例 #1
0
ファイル: tests.py プロジェクト: grzes/potato-chips
    def test_follow_unfollow_or_unfollow(self):
        """Make sure posts are only added to the stream while we're following someone."""
        self.create_posts()
        self.login('john.example.com', user_id='1')
        response = self.client.get(reverse('dash'))
        self.assertEqual(['t3', 't1'], [p.text for p in response.context['posts']])

        self.client.post(reverse('follow', args=('bob',)))
        Post.create(author=self.b2, text="b2", friends=self.b2.friends())
        response = self.client.get(reverse('dash'))
        self.assertEqual(['b2', 't3', 't1'], [p.text for p in response.context['posts']])

        # a second post to the follow view unfollows
        self.client.post(reverse('follow', args=('bob',)))
        Post.create(author=self.b2, text="b3", friends=self.b2.friends())
        response = self.client.get(reverse('dash'))
        self.assertEqual(['b2', 't3', 't1'], [p.text for p in response.context['posts']])
コード例 #2
0
ファイル: views.py プロジェクト: grzes/potato-chips
def postlist(request):
    """The blog view, if no user logged in or chosen display the home page."""
    # if no blog is selected invite the users to signup or redirect to dash
    if not request.blog:
        if request.user_blog:
            return redirect(fullurl(reverse('dash')))
        else:
            return render(request, "home.html")

    else:
        posts = Post.query_from(request.blog)
        return render(request, "blog.html", {
            'blog': request.blog,
            'posts': posts
        })
コード例 #3
0
ファイル: views.py プロジェクト: grzes/potato-chips
def edit(request, post_id):
    """Post editing or deletion."""
    post = Post.get_by_id(int(post_id)) # the url regex makes sure we only get a number here

    if not post or post.author.key() != request.user_blog.key() or post.deleted:
        raise Http404

    if request.method == 'POST':
        form = EditForm(request.POST, post=post)
        if form.is_valid():
            form.save()
            return redirect(reverse('dash'))
    else:
        form = EditForm(post=post)

    return render(request, "edit.html", {
            'form': form,
        })
コード例 #4
0
ファイル: views.py プロジェクト: grzes/potato-chips
def dash(request):
    """Users dashboard.

    It's like the main blog view but shows friend's posts."""

    if request.method == 'POST':
        form = PostForm(request.POST, blog=request.user_blog)
        if form.is_valid():
            form.save()
            return redirect(reverse('dash'))
    else:
        form = PostForm(blog=request.user_blog)

    posts = Post.query_for(reader=request.user_blog)

    return render(request, "dash.html", {
            'form': form,
            'user_blog': request.user_blog,
            'posts': posts
        })
コード例 #5
0
ファイル: tests.py プロジェクト: grzes/potato-chips
 def create_posts(self):
     self.p1 = Post.create(author=self.b1, text="t1", friends=self.b1.friends())
     self.p2 = Post.create(author=self.b2, text="t2", friends=self.b2.friends())
     self.p3 = Post.create(author=self.b1, text="t3", friends=self.b1.friends())
コード例 #6
0
ファイル: forms.py プロジェクト: grzes/potato-chips
 def save(self):
     Post.create(author=self.blog,
         text=self.cleaned_data['text'],
         friends=self.blog.friends()
     )