This repository has been archived on 2025-05-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
s2forums/djangobb_forum/feeds.py
slav0nic 24bba12e07 remove project files, now hosted at single app http://bitbucket.org/slav0nic/djangobb_project. This repo contains only app files
--HG--
rename : djangobb/djangobb_forum/__init__.py => djangobb_forum/__init__.py
rename : djangobb/djangobb_forum/admin.py => djangobb_forum/admin.py
rename : djangobb/djangobb_forum/context_processors.py => djangobb_forum/context_processors.py
rename : djangobb/djangobb_forum/feeds.py => djangobb_forum/feeds.py
rename : djangobb/djangobb_forum/fields.py => djangobb_forum/fields.py
rename : djangobb/djangobb_forum/fixtures/test_forum.json => djangobb_forum/fixtures/test_forum.json
rename : djangobb/djangobb_forum/forms.py => djangobb_forum/forms.py
rename : djangobb/djangobb_forum/locale/ca/LC_MESSAGES/django.mo => djangobb_forum/locale/ca/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/ca/LC_MESSAGES/django.po => djangobb_forum/locale/ca/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/cs/LC_MESSAGES/django.mo => djangobb_forum/locale/cs/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/cs/LC_MESSAGES/django.po => djangobb_forum/locale/cs/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/de/LC_MESSAGES/django.mo => djangobb_forum/locale/de/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/de/LC_MESSAGES/django.po => djangobb_forum/locale/de/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/en/LC_MESSAGES/django.mo => djangobb_forum/locale/en/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/en/LC_MESSAGES/django.po => djangobb_forum/locale/en/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/es/LC_MESSAGES/django.mo => djangobb_forum/locale/es/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/es/LC_MESSAGES/django.po => djangobb_forum/locale/es/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/fo/LC_MESSAGES/django.mo => djangobb_forum/locale/fo/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/fo/LC_MESSAGES/django.po => djangobb_forum/locale/fo/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/fr/LC_MESSAGES/django.mo => djangobb_forum/locale/fr/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/fr/LC_MESSAGES/django.po => djangobb_forum/locale/fr/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/hi/LC_MESSAGES/django.mo => djangobb_forum/locale/hi/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/hi/LC_MESSAGES/django.po => djangobb_forum/locale/hi/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/it/LC_MESSAGES/django.mo => djangobb_forum/locale/it/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/it/LC_MESSAGES/django.po => djangobb_forum/locale/it/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/lt/LC_MESSAGES/django.mo => djangobb_forum/locale/lt/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/lt/LC_MESSAGES/django.po => djangobb_forum/locale/lt/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/mn/LC_MESSAGES/django.mo => djangobb_forum/locale/mn/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/mn/LC_MESSAGES/django.po => djangobb_forum/locale/mn/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/pl/LC_MESSAGES/django.mo => djangobb_forum/locale/pl/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/pl/LC_MESSAGES/django.po => djangobb_forum/locale/pl/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/pt_BR/LC_MESSAGES/django.mo => djangobb_forum/locale/pt_BR/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/pt_BR/LC_MESSAGES/django.po => djangobb_forum/locale/pt_BR/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/ru/LC_MESSAGES/django.mo => djangobb_forum/locale/ru/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/ru/LC_MESSAGES/django.po => djangobb_forum/locale/ru/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/uk_UA/LC_MESSAGES/django.mo => djangobb_forum/locale/uk_UA/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/uk_UA/LC_MESSAGES/django.po => djangobb_forum/locale/uk_UA/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/vi/LC_MESSAGES/django.mo => djangobb_forum/locale/vi/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/vi/LC_MESSAGES/django.po => djangobb_forum/locale/vi/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/locale/zh_CN/LC_MESSAGES/django.mo => djangobb_forum/locale/zh_CN/LC_MESSAGES/django.mo
rename : djangobb/djangobb_forum/locale/zh_CN/LC_MESSAGES/django.po => djangobb_forum/locale/zh_CN/LC_MESSAGES/django.po
rename : djangobb/djangobb_forum/management/__init__.py => djangobb_forum/management/__init__.py
rename : djangobb/djangobb_forum/management/commands/__init__.py => djangobb_forum/management/commands/__init__.py
rename : djangobb/djangobb_forum/management/commands/djangobb_unban.py => djangobb_forum/management/commands/djangobb_unban.py
rename : djangobb/djangobb_forum/markups/__init__.py => djangobb_forum/markups/__init__.py
rename : djangobb/djangobb_forum/middleware.py => djangobb_forum/middleware.py
rename : djangobb/djangobb_forum/migrations/0001_initial.py => djangobb_forum/migrations/0001_initial.py
rename : djangobb/djangobb_forum/migrations/0002_auto__add_field_profile_show_smilies.py => djangobb_forum/migrations/0002_auto__add_field_profile_show_smilies.py
rename : djangobb/djangobb_forum/migrations/__init__.py => djangobb_forum/migrations/__init__.py
rename : djangobb/djangobb_forum/models.py => djangobb_forum/models.py
rename : djangobb/djangobb_forum/search_indexes.py => djangobb_forum/search_indexes.py
rename : djangobb/djangobb_forum/settings.py => djangobb_forum/settings.py
rename : djangobb/djangobb_forum/signals.py => djangobb_forum/signals.py
rename : djangobb/djangobb_forum/subscription.py => djangobb_forum/subscription.py
rename : djangobb/djangobb_forum/templates/forum/add_post.html => djangobb_forum/templates/forum/add_post.html
rename : djangobb/djangobb_forum/templates/forum/base.html => djangobb_forum/templates/forum/base.html
rename : djangobb/djangobb_forum/templates/forum/delete_posts.html => djangobb_forum/templates/forum/delete_posts.html
rename : djangobb/djangobb_forum/templates/forum/edit_post.html => djangobb_forum/templates/forum/edit_post.html
rename : djangobb/djangobb_forum/templates/forum/feeds/posts_description.html => djangobb_forum/templates/forum/feeds/posts_description.html
rename : djangobb/djangobb_forum/templates/forum/feeds/posts_title.html => djangobb_forum/templates/forum/feeds/posts_title.html
rename : djangobb/djangobb_forum/templates/forum/feeds/topics_description.html => djangobb_forum/templates/forum/feeds/topics_description.html
rename : djangobb/djangobb_forum/templates/forum/feeds/topics_title.html => djangobb_forum/templates/forum/feeds/topics_title.html
rename : djangobb/djangobb_forum/templates/forum/forum.html => djangobb_forum/templates/forum/forum.html
rename : djangobb/djangobb_forum/templates/forum/forum_row.html => djangobb_forum/templates/forum/forum_row.html
rename : djangobb/djangobb_forum/templates/forum/header.html => djangobb_forum/templates/forum/header.html
rename : djangobb/djangobb_forum/templates/forum/index.html => djangobb_forum/templates/forum/index.html
rename : djangobb/djangobb_forum/templates/forum/lofi/base.html => djangobb_forum/templates/forum/lofi/base.html
rename : djangobb/djangobb_forum/templates/forum/lofi/footer.html => djangobb_forum/templates/forum/lofi/footer.html
rename : djangobb/djangobb_forum/templates/forum/lofi/forum.html => djangobb_forum/templates/forum/lofi/forum.html
rename : djangobb/djangobb_forum/templates/forum/lofi/header.html => djangobb_forum/templates/forum/lofi/header.html
rename : djangobb/djangobb_forum/templates/forum/lofi/index.html => djangobb_forum/templates/forum/lofi/index.html
rename : djangobb/djangobb_forum/templates/forum/lofi/pagination.html => djangobb_forum/templates/forum/lofi/pagination.html
rename : djangobb/djangobb_forum/templates/forum/lofi/topic.html => djangobb_forum/templates/forum/lofi/topic.html
rename : djangobb/djangobb_forum/templates/forum/mail_to.html => djangobb_forum/templates/forum/mail_to.html
rename : djangobb/djangobb_forum/templates/forum/moderate.html => djangobb_forum/templates/forum/moderate.html
rename : djangobb/djangobb_forum/templates/forum/moderators.html => djangobb_forum/templates/forum/moderators.html
rename : djangobb/djangobb_forum/templates/forum/move_topic.html => djangobb_forum/templates/forum/move_topic.html
rename : djangobb/djangobb_forum/templates/forum/pagination.html => djangobb_forum/templates/forum/pagination.html
rename : djangobb/djangobb_forum/templates/forum/post_preview.html => djangobb_forum/templates/forum/post_preview.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_admin.html => djangobb_forum/templates/forum/profile/profile_admin.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_display.html => djangobb_forum/templates/forum/profile/profile_display.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_essentials.html => djangobb_forum/templates/forum/profile/profile_essentials.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_menu.html => djangobb_forum/templates/forum/profile/profile_menu.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_messaging.html => djangobb_forum/templates/forum/profile/profile_messaging.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_personal.html => djangobb_forum/templates/forum/profile/profile_personal.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_personality.html => djangobb_forum/templates/forum/profile/profile_personality.html
rename : djangobb/djangobb_forum/templates/forum/profile/profile_privacy.html => djangobb_forum/templates/forum/profile/profile_privacy.html
rename : djangobb/djangobb_forum/templates/forum/report.html => djangobb_forum/templates/forum/report.html
rename : djangobb/djangobb_forum/templates/forum/reputation.html => djangobb_forum/templates/forum/reputation.html
rename : djangobb/djangobb_forum/templates/forum/reputation_form.html => djangobb_forum/templates/forum/reputation_form.html
rename : djangobb/djangobb_forum/templates/forum/search_form.html => djangobb_forum/templates/forum/search_form.html
rename : djangobb/djangobb_forum/templates/forum/search_posts.html => djangobb_forum/templates/forum/search_posts.html
rename : djangobb/djangobb_forum/templates/forum/search_topics.html => djangobb_forum/templates/forum/search_topics.html
rename : djangobb/djangobb_forum/templates/forum/topic.html => djangobb_forum/templates/forum/topic.html
rename : djangobb/djangobb_forum/templates/forum/upload_avatar.html => djangobb_forum/templates/forum/upload_avatar.html
rename : djangobb/djangobb_forum/templates/forum/user.html => djangobb_forum/templates/forum/user.html
rename : djangobb/djangobb_forum/templates/forum/users.html => djangobb_forum/templates/forum/users.html
rename : djangobb/djangobb_forum/templates/search/indexes/djangobb_forum/post_text.txt => djangobb_forum/templates/search/indexes/djangobb_forum/post_text.txt
rename : djangobb/djangobb_forum/templatetags/__init__.py => djangobb_forum/templatetags/__init__.py
rename : djangobb/djangobb_forum/templatetags/forum_extras.py => djangobb_forum/templatetags/forum_extras.py
rename : djangobb/djangobb_forum/tests/__init__.py => djangobb_forum/tests/__init__.py
rename : djangobb/djangobb_forum/tests/test_forum.py => djangobb_forum/tests/test_forum.py
rename : djangobb/djangobb_forum/tests/test_profile.py => djangobb_forum/tests/test_profile.py
rename : djangobb/djangobb_forum/tests/test_reputation.py => djangobb_forum/tests/test_reputation.py
rename : djangobb/djangobb_forum/tests/test_templatetags.py => djangobb_forum/tests/test_templatetags.py
rename : djangobb/djangobb_forum/tests/test_utils.py => djangobb_forum/tests/test_utils.py
rename : djangobb/djangobb_forum/urls.py => djangobb_forum/urls.py
rename : djangobb/djangobb_forum/util.py => djangobb_forum/util.py
rename : djangobb/djangobb_forum/views.py => djangobb_forum/views.py
2011-08-17 15:11:14 +03:00

128 lines
4 KiB
Python

from django.contrib.syndication.views import Feed, FeedDoesNotExist
from django.utils.feedgenerator import Atom1Feed
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from django.db.models import Q
from django.http import Http404
from djangobb_forum.models import Post, Topic, Forum, Category
class ForumFeed(Feed):
feed_type = Atom1Feed
def link(self):
return reverse('djangobb:index')
def item_guid(self, obj):
return str(obj.id)
def item_pubdate(self, obj):
return obj.created
class LastPosts(ForumFeed):
title = _('Latest posts on forum')
description = _('Latest posts on forum')
title_template = 'forum/feeds/posts_title.html'
description_template = 'forum/feeds/posts_description.html'
def get_object(self, request):
user_groups = request.user.groups.all()
if request.user.is_anonymous():
user_groups = []
allow_forums = Forum.objects.filter(
Q(category__groups__in=user_groups) | \
Q(category__groups__isnull=True))
return allow_forums
def items(self, allow_forums):
return Post.objects.filter(topic__forum__in=allow_forums).order_by('-created')[:15]
class LastTopics(ForumFeed):
title = _('Latest topics on forum')
description = _('Latest topics on forum')
title_template = 'forum/feeds/topics_title.html'
description_template = 'forum/feeds/topics_description.html'
def get_object(self, request):
user_groups = request.user.groups.all()
if request.user.is_anonymous():
user_groups = []
allow_forums = Forum.objects.filter(
Q(category__groups__in=user_groups) | \
Q(category__groups__isnull=True))
return allow_forums
def items(self, allow_forums):
return Topic.objects.filter(forum__in=allow_forums).order_by('-created')[:15]
class LastPostsOnTopic(ForumFeed):
title_template = 'forum/feeds/posts_title.html'
description_template = 'forum/feeds/posts_description.html'
def get_object(self, request, topic_id):
topic = Topic.objects.get(id=topic_id)
if not topic.forum.category.has_access(request.user):
raise Http404
return topic
def title(self, obj):
return _('Latest posts on %s topic' % obj.name)
def link(self, obj):
if not obj:
raise FeedDoesNotExist
return obj.get_absolute_url()
def description(self, obj):
return _('Latest posts on %s topic' % obj.name)
def items(self, obj):
return Post.objects.filter(topic__id=obj.id).order_by('-created')[:15]
class LastPostsOnForum(ForumFeed):
title_template = 'forum/feeds/posts_title.html'
description_template = 'forum/feeds/posts_description.html'
def get_object(self, request, forum_id):
forum = Forum.objects.get(id=forum_id)
if not forum.category.has_access(request.user):
raise Http404
return forum
def title(self, obj):
return _('Latest posts on %s forum' % obj.name)
def link(self, obj):
if not obj:
raise FeedDoesNotExist
return obj.get_absolute_url()
def description(self, obj):
return _('Latest posts on %s forum' % obj.name)
def items(self, obj):
return Post.objects.filter(topic__forum__id=obj.id).order_by('-created')[:15]
class LastPostsOnCategory(ForumFeed):
title_template = 'forum/feeds/posts_title.html'
description_template = 'forum/feeds/posts_description.html'
def get_object(self, request, category_id):
category = Category.objects.get(id=category_id)
if not category.has_access(request.user):
raise Http404
return category
def title(self, obj):
return _('Latest posts on %s category' % obj.name)
def description(self, obj):
return _('Latest posts on %s category' % obj.name)
def items(self, obj):
return Post.objects.filter(topic__forum__category__id=obj.id).order_by('-created')[:15]