зеркало из https://github.com/mozilla/batucada.git
Basic Atom feed for user activity
This commit is contained in:
Родитель
0501285f84
Коммит
7966bef731
|
@ -0,0 +1,42 @@
|
||||||
|
from django.contrib.syndication.views import Feed
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
|
from django.shortcuts import get_object_or_404
|
||||||
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from django.utils.feedgenerator import Atom1Feed
|
||||||
|
|
||||||
|
from activity.models import Activity
|
||||||
|
from users.models import UserProfile
|
||||||
|
|
||||||
|
|
||||||
|
class UserActivityFeed(Feed):
|
||||||
|
"""Atom feed of user activities."""
|
||||||
|
|
||||||
|
feed_type = Atom1Feed
|
||||||
|
|
||||||
|
def author_name(self, user):
|
||||||
|
return user.name
|
||||||
|
|
||||||
|
def title(self, user):
|
||||||
|
return user.name
|
||||||
|
|
||||||
|
def subtitle(self, user):
|
||||||
|
return _('Activity feed for %s' % (user.name,))
|
||||||
|
|
||||||
|
def link(self, user):
|
||||||
|
return reverse('users_profile_view',
|
||||||
|
kwargs={'username': user.username})
|
||||||
|
|
||||||
|
def get_object(self, request, username):
|
||||||
|
return get_object_or_404(UserProfile, username=username)
|
||||||
|
|
||||||
|
def items(self, user):
|
||||||
|
return Activity.objects.filter(actor=user)[:25]
|
||||||
|
|
||||||
|
def item_title(self, item):
|
||||||
|
return item.verb
|
||||||
|
|
||||||
|
def item_description(self, item):
|
||||||
|
return u"%s activity performed by %s" % (item.verb, item.actor.name)
|
||||||
|
|
||||||
|
def item_link(self, item):
|
||||||
|
return u'http://blah.com'
|
|
@ -1,9 +1,13 @@
|
||||||
from django.conf.urls.defaults import patterns, url
|
from django.conf.urls.defaults import patterns, url
|
||||||
|
|
||||||
|
from activity.feeds import UserActivityFeed
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^(?P<activity_id>[\d]+)/', 'activity.views.index',
|
url(r'^activity/(?P<activity_id>[\d]+)/', 'activity.views.index',
|
||||||
name='activity_index'),
|
name='activity_index'),
|
||||||
url(r'^delete/$', 'activity.views.delete',
|
url(r'^activity/delete/$', 'activity.views.delete',
|
||||||
name='activity_delete'),
|
name='activity_delete'),
|
||||||
|
url(r'^(?P<username>[\w-]+)/feed', UserActivityFeed(),
|
||||||
|
name='activity_user_feed'),
|
||||||
)
|
)
|
||||||
|
|
2
urls.py
2
urls.py
|
@ -8,7 +8,7 @@ urlpatterns = patterns('',
|
||||||
(r'^admin/', include(admin.site.urls)),
|
(r'^admin/', include(admin.site.urls)),
|
||||||
(r'', include('dashboard.urls')),
|
(r'', include('dashboard.urls')),
|
||||||
(r'', include('wellknown.urls')),
|
(r'', include('wellknown.urls')),
|
||||||
(r'^activity/', include('activity.urls')),
|
(r'', include('activity.urls')),
|
||||||
(r'^statuses/', include('statuses.urls')),
|
(r'^statuses/', include('statuses.urls')),
|
||||||
(r'^projects/', include('projects.urls')),
|
(r'^projects/', include('projects.urls')),
|
||||||
(r'^events/', include('events.urls')),
|
(r'^events/', include('events.urls')),
|
||||||
|
|
Загрузка…
Ссылка в новой задаче