示例#1
0
 def execute_function(self, entry, value, user=None):
     if self.field_function == "GroupSubscription":
         if value:
             for val in self.function_params.split(','):
                 group = Group.objects.get(name=val)
                 if user:
                     try:
                         group_membership = GroupMembership.objects.get(group=group, member=user)
                     except GroupMembership.DoesNotExist:
                         group_membership = GroupMembership(group=group, member=user)
                         group_membership.creator_id = user.id
                         group_membership.creator_username = user.username
                         group_membership.role='subscriber'
                         group_membership.owner_id =  user.id
                         group_membership.owner_username = user.username
                         group_membership.save()
                 else:
                     entry.subscribe(group)  # subscribe form-entry to a group
示例#2
0
def groupmembership_bulk_add(request, group_slug, 
                        form_class=GroupMembershipBulkForm,
                        template_name="user_groups/member_add.html"):
    group = get_object_or_404(Group, slug=group_slug)
    
    if request.method == 'POST':
        form = form_class(group, request.POST)
        if form.is_valid():
            members = form.cleaned_data['members']
            
            old_members = GroupMembership.objects.filter(group=group)
            
            #delete removed groupmemberships
            if members:
                for old_m in old_members:
                    try:
                        members.get(pk=old_m.member.pk)
                    except User.DoesNotExist:
                        log_defaults = {
                            'event_id' : 223000,
                            'event_data': '%s (%d) deleted by %s' % (old_m._meta.object_name, old_m.pk, request.user),
                            'description': '%s deleted' % old_m._meta.object_name,
                            'user': request.user,
                            'request': request,
                            'instance': old_m,
                        }
                        EventLog.objects.log(**log_defaults)
                        old_m.delete()
            else: #when members is None
                for old_m in old_members:
                    log_defaults = {
                        'event_id' : 223000,
                        'event_data': '%s (%d) deleted by %s' % (old_m._meta.object_name, old_m.pk, request.user),
                        'description': '%s deleted' % old_m._meta.object_name,
                        'user': request.user,
                        'request': request,
                        'instance': old_m,
                    }
                    EventLog.objects.log(**log_defaults)
                    old_m.delete()
                    
            for m in members:
                try:
                    group_membership = GroupMembership.objects.get(group=group, member=m)
                except GroupMembership.DoesNotExist:
                    group_membership = GroupMembership(group=group, member=m)
                    group_membership.creator_id = request.user.id
                    group_membership.creator_username = request.user.username
                
                group_membership.role=form.cleaned_data['role']
                group_membership.status=form.cleaned_data['status']
                group_membership.status_detail=form.cleaned_data['status_detail']
                group_membership.owner_id =  request.user.id
                group_membership.owner_username = request.user.username
                
                group_membership.save()

                log_defaults = {
                    'event_id' : 221000,
                    'event_data': '%s (%d) added by %s' % (group_membership._meta.object_name, group_membership.pk, request.user),
                    'description': '%s added' % group_membership._meta.object_name,
                    'user': request.user,
                    'request': request,
                    'instance': group_membership,
                }
                EventLog.objects.log(**log_defaults)
            return HttpResponseRedirect(group.get_absolute_url())
    else:
        member_label = request.GET.get('member_label', 'username')
        form = form_class(group, member_label=member_label)

    return render_to_response(template_name, locals(), context_instance=RequestContext(request))