From 9835aedf1127f021f1d50e616aef8c8bd825571e Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Fri, 14 Sep 2012 15:00:39 -0400 Subject: corrected Thread.get_users_shared_with filtering --- askbot/models/question.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/askbot/models/question.py b/askbot/models/question.py index 5793f301..354655f3 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -555,18 +555,27 @@ class Thread(models.Model): """returns query set of users with whom this thread is shared """ - groups = self.groups.filter(name__startswith='_internal_') + filter = models.Q( + thread=self, + visibility=ThreadToGroup.SHOW_ALL_RESPONSES + ) & models.Q( + group__name__startswith='_internal_' + ) if exclude_user: - exclude_user_group = exclude_user.get_personal_group() - groups = groups.exclude(name=exclude_user_group.name) + user_group = exclude_user.get_personal_group() + filter = filter & ~models.Q(group_id=user_group.id) + + thread_groups = ThreadToGroup.objects.filter(filter) if max_count: - groups = groups[:max_count] + thread_groups = thread_groups[:max_count] + + group_ids = thread_groups.values_list('group_id', flat=True) from askbot.models import GroupMembership user_ids = GroupMembership.objects.filter( - group__in=groups + group__id__in=group_ids ).values_list( 'user__id', flat=True ) -- cgit v1.2.3-1-g7c22