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
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))