Ejemplo n.º 1
0
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    
Ejemplo n.º 2
0
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