示例#1
0
def sprouts_homepage(request, **kwargs):
    """
    Lists users and followings sprouts
    """
    user_list = User.objects.filter(username=request.user) | request.user.relationships.following()
    queryset = positive_filter(Sprout.objects.select_related().all(), user_list)
    extra_context={'form': SproutForm(initial={'user': request.user})}
    return object_list(request, queryset=queryset, template_name='sprouts/home_sprouts.html', extra_context=extra_context)
示例#2
0
    def test_positive_filter(self):
        following = RelationshipStatus.objects.following()

        # create some groups to filter
        from django.contrib.auth.models import Group
        beatles = Group.objects.create(name='beatles')
        john_yoko = Group.objects.create(name='john_yoko')
        characters = Group.objects.create(name='characters')

        self.walrus.groups.add(characters)

        self.john.groups.add(beatles)
        self.john.groups.add(john_yoko)

        self.paul.groups.add(beatles)

        self.yoko.groups.add(john_yoko)
        self.yoko.groups.add(characters)

        group_qs = Group.objects.all().order_by('name')

        # groups people paul follows are in (nobody)
        paul_following_groups = positive_filter(
            group_qs, self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [])

        # when paul follows john he will see john's groups
        self.paul.relationships.add(self.john, following)
        paul_following_groups = positive_filter(
            group_qs, self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [beatles, john_yoko])

        # now john's + walrus's
        self.paul.relationships.add(self.walrus, following)
        paul_following_groups = positive_filter(
            group_qs, self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups,
                                 [beatles, characters, john_yoko])

        # everybody's - distinct groups, no dupes
        self.paul.relationships.add(self.yoko, following)
        paul_following_groups = positive_filter(
            group_qs, self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups,
                                 [beatles, characters, john_yoko])

        # just groups walrus & yoko are in
        self.paul.relationships.remove(self.john, following)
        paul_following_groups = positive_filter(
            group_qs, self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups,
                                 [characters, john_yoko])

        # just walrus' groups
        self.paul.relationships.remove(self.yoko)
        paul_following_groups = positive_filter(
            group_qs, self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [characters])

        self.paul.relationships.remove(self.walrus)
示例#3
0
    def test_positive_filter(self):
        following = RelationshipStatus.objects.following()
        blocking = RelationshipStatus.objects.blocking()

        # create some groups to filter
        from django.contrib.auth.models import Group
        beatles = Group.objects.create(name='beatles')
        john_yoko = Group.objects.create(name='john_yoko')
        characters = Group.objects.create(name='characters')

        self.walrus.groups.add(characters)

        self.john.groups.add(beatles)
        self.john.groups.add(john_yoko)

        self.paul.groups.add(beatles)

        self.yoko.groups.add(john_yoko)
        self.yoko.groups.add(characters)

        # groups people paul follows are in (nobody)
        paul_following_groups = positive_filter(Group.objects.all(),
            self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [])

        # when paul follows john he will see john's groups
        self.paul.relationships.add(self.john, following)
        paul_following_groups = positive_filter(Group.objects.all(),
            self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [beatles, john_yoko])

        # now john's + walrus's
        self.paul.relationships.add(self.walrus, following)
        paul_following_groups = positive_filter(Group.objects.all(),
            self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [beatles, john_yoko, characters])

        # everybody's - distinct groups, no dupes
        self.paul.relationships.add(self.yoko, following)
        paul_following_groups = positive_filter(Group.objects.all(),
            self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [beatles, john_yoko, characters])

        # just groups walrus & yoko are in
        self.paul.relationships.remove(self.john, following)
        paul_following_groups = positive_filter(Group.objects.all(),
            self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [john_yoko, characters])

        # just walrus' groups
        self.paul.relationships.remove(self.yoko)
        paul_following_groups = positive_filter(Group.objects.all(),
            self.paul.relationships.following(), 'user')
        self.assertQuerysetEqual(paul_following_groups, [characters])
        
        self.paul.relationships.remove(self.walrus)
def followers_content(qs, user):
    return positive_filter(qs, user.relationships.followers())
def friend_content(qs, user):
    return positive_filter(qs, user.relationships.friends())