def getParticipantsForItem(item): groups = getReciprocatedGroups(item.sharer.participant) groupIds = [] for group in groups: groupIds.append(group.id) if item.share_type == 'all_friends': participants = Participant.objects.filter( Q(member__friendship_set__friend=item.sharer) & Q(member__reverse_friendship_set__member=item.sharer) ) if item.share_type == 'all_friends_groups': #ignoring things shared through groups participants = Participant.objects.filter( (Q(member__friendship_set__friend=item.sharer) & Q(member__reverse_friendship_set__member=item.sharer)) # | Q(member__groupmembership__group_id__in=groupIds) ).exclude(member=item.sharer).distinct() if item.share_type == 'share_list': #ignoring things shared through groups participants = Participant.objects.filter( Q(sharelistsharee__shareList__item=item) ) if item.share_type == 'custom': #ignoring things shared through groups participants = Participant.objects.filter( Q(itemsharee__item=item) ) return participants
def getItemsForParticipant(participant): if participant.type == 'member': groups = getReciprocatedGroups(participant) groupIds = [] for group in groups: groupIds.append(group.id) # print('groups:') # print(partGroupIds) items = Item.objects.all().filter( ( Q(share_type='custom') & Q(itemsharee__sharee_id=participant.id) ) | ( Q(share_type='share_list') & Q(sharelist__sharelistsharee__sharee_id=participant.id) ) | ( Q(share_type='all_friends') & Q(sharer__friendship_set__friend=participant.member) & Q(sharer__reverse_friendship_set__member=participant.member) ) | ( Q(itemgroup__group_id__in=groupIds) ) ).exclude(sharer=participant.member).distinct().order_by('-share_date') return items