diff options
author | Leif Johansson <leifj@sunet.se> | 2011-11-08 14:10:17 +0100 |
---|---|---|
committer | Leif Johansson <leifj@sunet.se> | 2011-11-08 14:10:42 +0100 |
commit | baf5f96d25c5f378169ac910f9535d29a9546e3e (patch) | |
tree | 7c16bc8a98d8a244a78577be8a625001757af89b /coip/apps/membership | |
parent | 9ba73ae91642d07aa78789e6e0cedf6ed6250300 (diff) |
produce a basic group-oriented activity stream
Diffstat (limited to 'coip/apps/membership')
-rw-r--r-- | coip/apps/membership/models.py | 18 | ||||
-rw-r--r-- | coip/apps/membership/views.py | 6 |
2 files changed, 12 insertions, 12 deletions
diff --git a/coip/apps/membership/models.py b/coip/apps/membership/models.py index 68eda96..9aec54f 100644 --- a/coip/apps/membership/models.py +++ b/coip/apps/membership/models.py @@ -71,7 +71,7 @@ To view information about \'%s\' open this link in your browser: fail_silently=False) return -def add_member(name,member_name,hidden=False): +def add_member(name,member_name,hidden=False,actor=None): (m,created) = Membership.objects.get_or_create(user=member_name,name=name) if created or not m.enabled or m.hidden != hidden: m.enabled = True @@ -82,30 +82,30 @@ def add_member(name,member_name,hidden=False): name.nmembers = -1 name.save() - if not m.hidden: - action.send(m.user,verb='added to',target=m.name) + if not m.hidden and actor: + action.send(actor,action_object=m.user,verb='added to',target=m.name) return m.send_notification("added to") -def disable_member(name,member_name): +def disable_member(name,member_name,actor=None): m = Membership.objects.get(name=name,user=member_name) if m: m.enabled = False m.save() m.send_notification("temporarily removed from") - if not m.hidden: - action.send(m.user,verb='temporarily removed from',target=m.name) + if not m.hidden and actor: + action.send(actor,action_object=m.user,verb='temporarily removed from',target=m.name) if name.nmembers != -1: name.nmembers = -1 name.save() -def remove_member(name,member_name): +def remove_member(name,member_name,actor=None): m = Membership.objects.get(name=name,user=member_name) if m: m.send_notification("removed from") - if not m.hidden: - action.send(m.user,verb='removed from',target=m.name) + if not m.hidden and actor: + action.send(actor,action_object=m.user,verb='removed from',target=m.name) m.delete() if name.nmembers != -1: diff --git a/coip/apps/membership/views.py b/coip/apps/membership/views.py index 3d5a178..c1f3afb 100644 --- a/coip/apps/membership/views.py +++ b/coip/apps/membership/views.py @@ -33,7 +33,7 @@ def join(request,id,membername=None): m = Membership(name=name,enabled=True) form = MembershipForm(request.POST,instance=m) if form.is_valid(): - add_member(name,form.cleaned_data['user']) + add_member(name,form.cleaned_data['user'],actor=request.user) return HttpResponseRedirect(name.url()) else: return respond_to(request, @@ -42,7 +42,7 @@ def join(request,id,membername=None): else: if membername: user = get_object_or_404(User,username=membername) - add_member(name, user) + add_member(name, user,actor=request.user) return HttpResponseRedirect(name.url()) else: form = MembershipForm() @@ -55,5 +55,5 @@ def leave(request,id,membername=None): name = get_object_or_404(Name,pk=id) if membername: user = get_object_or_404(User,username=membername) - remove_member(name, user) + remove_member(name, user,actor=request.user) return HttpResponseRedirect(name.url()) |