views: add recursive list members when computing list limitations

This commit is contained in:
Benjamin Dauvergne 2013-09-17 17:52:20 +02:00
parent 55422f752d
commit 2de2128b0c
1 changed files with 11 additions and 0 deletions

View File

@ -73,6 +73,16 @@ def get_mailbox(request, mailbox_id, back='inbox'):
def user_mailing_list_names(user):
return user.mailing_lists.values_list('name', flat=True)
def recursive_lists(lists):
lists = set(lists)
count = len(lists)
while True:
lists |= set(MailingList.objects.filter(members_lists__in=lists))
if len(lists) == count:
break
count = len(lists)
return lists
def get_file_form_kwargs(request):
user = request.user
kwargs = {}
@ -83,6 +93,7 @@ def get_file_form_kwargs(request):
.filter(lists_limitation__mailing_list__in=user_lists) \
.distinct() \
.order_by('name')
lists = recursive_lists(lists)
users = User.objects.filter(mailing_lists__in=lists, is_active=True) \
.distinct()
if lists: