summaryrefslogtreecommitdiff
path: root/coip/apps/activitystreams
diff options
context:
space:
mode:
Diffstat (limited to 'coip/apps/activitystreams')
-rw-r--r--coip/apps/activitystreams/managers.py17
-rw-r--r--coip/apps/activitystreams/urls.py4
-rw-r--r--coip/apps/activitystreams/views.py45
3 files changed, 46 insertions, 20 deletions
diff --git a/coip/apps/activitystreams/managers.py b/coip/apps/activitystreams/managers.py
deleted file mode 100644
index aaa73f9..0000000
--- a/coip/apps/activitystreams/managers.py
+++ /dev/null
@@ -1,17 +0,0 @@
-'''
-Created on Nov 8, 2011
-
-@author: leifj
-'''
-from actstream.models import ActionManager
-from actstream.views import stream
-from datetime import datetime
-
-
-class NameActionManager(ActionManager):
-
- @stream
- def name_activities(self, name, time=None):
- if time is None:
- time = datetime.now()
- return name.actor_actions.filter(timestamp__lte = time) \ No newline at end of file
diff --git a/coip/apps/activitystreams/urls.py b/coip/apps/activitystreams/urls.py
index e5d0d94..edbab36 100644
--- a/coip/apps/activitystreams/urls.py
+++ b/coip/apps/activitystreams/urls.py
@@ -5,6 +5,6 @@ Created on Nov 7, 2011
'''
from django.conf.urls.defaults import patterns, url
-urlpatterns = patterns('',
- url(r'^@any/(?P<id>[0-9]+)', view='coip.apps.activitystreams.urls')
+urlpatterns = patterns('coip.apps.activitystreams.views',
+ url(r'^@any/(?P<id>[0-9]+)/?$', view='name')
) \ No newline at end of file
diff --git a/coip/apps/activitystreams/views.py b/coip/apps/activitystreams/views.py
index a99bec3..91ba957 100644
--- a/coip/apps/activitystreams/views.py
+++ b/coip/apps/activitystreams/views.py
@@ -6,9 +6,52 @@ Created on Nov 8, 2011
from django.shortcuts import get_object_or_404
from coip.apps.name.models import Name
from coip.multiresponse import json_response
+from django_oauth2_lite.decorators import oauth2_required
+from actstream.models import Action
+from django.http import HttpResponseNotFound
+from coip.extensions.templatetags.userdisplay import userdisplay
+
+def user_to_json(o):
+ return {
+ 'objectType': 'person',
+ 'id': o.username,
+ 'displayName': userdisplay(o)
+ }
+
+def name_to_json(o):
+ return {
+ 'objectType': 'group',
+ 'id': o.id,
+ 'url': o.url(),
+ 'displayName': o.shortname()
+ }
+
+def object_to_json(o):
+ if o:
+ n = o.__class__.__name__
+ if n == 'User':
+ return user_to_json(o)
+ if n == 'Name':
+ return name_to_json(o)
+ else:
+ return "none"
+
+def activity_to_json(activity):
+ r = {
+ "published": activity.timestamp.isoformat(),
+ "actor": object_to_json(activity.actor),
+ "verb": activity.verb,
+ "object": object_to_json(activity.action_object),
+ "target": object_to_json(activity.target)
+ }
+ return r
@oauth2_required(scope='memberships')
def name(request,id):
name = get_object_or_404(Name,pk=id)
# check ownership
- return json_response(name.actor_actions.name_activities()) \ No newline at end of file
+ stream = Action.objects.stream_for_object_as_target(name)
+ if stream:
+ return json_response([activity_to_json(activity) for activity in stream])
+ else:
+ return HttpResponseNotFound() \ No newline at end of file