diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-09-14 15:00:39 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-09-14 15:00:39 -0400 |
commit | 9835aedf1127f021f1d50e616aef8c8bd825571e (patch) | |
tree | e44613ce51f8753e50858c7377a689ca7c03b35f | |
parent | 3e183e1a445ab46ddbf6f0a83be820fc77a8f0c3 (diff) | |
download | askbot-9835aedf1127f021f1d50e616aef8c8bd825571e.tar.gz askbot-9835aedf1127f021f1d50e616aef8c8bd825571e.tar.bz2 askbot-9835aedf1127f021f1d50e616aef8c8bd825571e.zip |
corrected Thread.get_users_shared_with filtering
-rw-r--r-- | askbot/models/question.py | 19 |
1 files 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 ) |