##// END OF EJS Templates
Limit only first posting by this session. Assume messages created by spam bots...
Limit only first posting by this session. Assume messages created by spam bots can be removed afterwards

File last commit:

r1429:5967a527 default
r1494:89a50a1d default
Show More
notifications.py
49 lines | 1.5 KiB | text/x-python | PythonLexer
neko259
User notifications (BB-59)
r990 from django.shortcuts import render
neko259
Refactored views
r1090
neko259
User notifications (BB-59)
r990 from boards.abstracts.paginator import get_paginator
from boards.abstracts.settingsmanager import get_settings_manager, \
SETTING_USERNAME, SETTING_LAST_NOTIFICATION_ID
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'
PARAM_PAGE = 'page'
neko259
Subscribe to a multiple of users for notifications
r1429 PARAM_USERNAMES = 'notification_usernames'
neko259
User notifications (BB-59)
r990 REQUEST_PAGE = 'page'
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
posts = Notification.objects.get_notification_posts(
neko259
Subscribe to a multiple of users for notifications
r1429 usernames=notification_usernames)
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
Refactored views
r1090 page = int(request.GET.get(REQUEST_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)