##// END OF EJS Templates
Add notifications for threads created in favorite tags
Add notifications for threads created in favorite tags

File last commit:

r2054:fca209ed default
r2054:fca209ed default
Show More
notifications.py
50 lines | 1.6 KiB | text/x-python | PythonLexer
neko259
User notifications (BB-59)
r990 from django.shortcuts import render
neko259
Refactored views
r1090
neko259
Even more refactoring
r2005 from boards.abstracts.constants import PARAM_PAGE
neko259
User notifications (BB-59)
r990 from boards.abstracts.paginator import get_paginator
from boards.abstracts.settingsmanager import get_settings_manager, \
neko259
Even more refactoring
r2005 SETTING_LAST_NOTIFICATION_ID
neko259
User notifications (BB-59)
r990 from boards.models.user import Notification
from boards.views.base import BaseBoardView
neko259
Refactored views
r1090 DEFAULT_PAGE = '1'
neko259
User notifications (BB-59)
r990 TEMPLATE = 'boards/notifications.html'
neko259
Subscribe to a multiple of users for notifications
r1429 PARAM_USERNAMES = 'notification_usernames'
neko259
User notifications (BB-59)
r990 RESULTS_PER_PAGE = 10
class NotificationView(BaseBoardView):
neko259
Subscribe to a multiple of users for notifications
r1429 def get(self, request, username=None):
neko259
User notifications (BB-59)
r990 params = self.get_context_data()
settings_manager = get_settings_manager(request)
# If we open our notifications, reset the "new" count
neko259
Subscribe to a multiple of users for notifications
r1429 if username is None:
notification_usernames = settings_manager.get_notification_usernames()
else:
notification_usernames = [username]
neko259
Use only lowercase name in notifications. Refactored post manager and refmap...
r1008
neko259
Add notifications for threads created in favorite tags
r2054 fav_tags = settings_manager.get_fav_tags()
neko259
Use only lowercase name in notifications. Refactored post manager and refmap...
r1008 posts = Notification.objects.get_notification_posts(
neko259
Add notifications for threads created in favorite tags
r2054 usernames=notification_usernames, fav_tags=fav_tags)
neko259
Subscribe to a multiple of users for notifications
r1429
if username is None:
neko259
Added notification API
r994 last = posts.first()
neko259
User notifications (BB-59)
r990 if last is not None:
last_id = last.id
settings_manager.set_setting(SETTING_LAST_NOTIFICATION_ID,
last_id)
neko259
Subscribe to a multiple of users for notifications
r1429
neko259
User notifications (BB-59)
r990 paginator = get_paginator(posts, RESULTS_PER_PAGE)
neko259
Even more refactoring
r2005 page = int(request.GET.get(PARAM_PAGE, DEFAULT_PAGE))
neko259
User notifications (BB-59)
r990
params[PARAM_PAGE] = paginator.page(page)
neko259
Subscribe to a multiple of users for notifications
r1429 params[PARAM_USERNAMES] = notification_usernames
neko259
User notifications (BB-59)
r990
return render(request, TEMPLATE, params)