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)
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)
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())