##// END OF EJS Templates
Show only threads created in the favorite tag, not all its posts
Show only threads created in the favorite tag, not all its posts

File last commit:

r2054:fca209ed default
r2055:ef4735f5 default
Show More
notifications.py
50 lines | 1.6 KiB | text/x-python | PythonLexer
from django.shortcuts import render
from boards.abstracts.constants import PARAM_PAGE
from boards.abstracts.paginator import get_paginator
from boards.abstracts.settingsmanager import get_settings_manager, \
SETTING_LAST_NOTIFICATION_ID
from boards.models.user import Notification
from boards.views.base import BaseBoardView
DEFAULT_PAGE = '1'
TEMPLATE = 'boards/notifications.html'
PARAM_USERNAMES = 'notification_usernames'
RESULTS_PER_PAGE = 10
class NotificationView(BaseBoardView):
def get(self, request, username=None):
params = self.get_context_data()
settings_manager = get_settings_manager(request)
# If we open our notifications, reset the "new" count
if username is None:
notification_usernames = settings_manager.get_notification_usernames()
else:
notification_usernames = [username]
fav_tags = settings_manager.get_fav_tags()
posts = Notification.objects.get_notification_posts(
usernames=notification_usernames, fav_tags=fav_tags)
if username is None:
last = posts.first()
if last is not None:
last_id = last.id
settings_manager.set_setting(SETTING_LAST_NOTIFICATION_ID,
last_id)
paginator = get_paginator(posts, RESULTS_PER_PAGE)
page = int(request.GET.get(PARAM_PAGE, DEFAULT_PAGE))
params[PARAM_PAGE] = paginator.page(page)
params[PARAM_USERNAMES] = notification_usernames
return render(request, TEMPLATE, params)