summaryrefslogtreecommitdiff
path: root/coip/apps/membership
diff options
context:
space:
mode:
authorLeif Johansson <leifj@sunet.se>2011-11-08 14:10:17 +0100
committerLeif Johansson <leifj@sunet.se>2011-11-08 14:10:42 +0100
commitbaf5f96d25c5f378169ac910f9535d29a9546e3e (patch)
tree7c16bc8a98d8a244a78577be8a625001757af89b /coip/apps/membership
parent9ba73ae91642d07aa78789e6e0cedf6ed6250300 (diff)
produce a basic group-oriented activity stream
Diffstat (limited to 'coip/apps/membership')
-rw-r--r--coip/apps/membership/models.py18
-rw-r--r--coip/apps/membership/views.py6
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())