forum: add favorite topics

Signed-off-by: Skia <skia@libskia.so>
This commit is contained in:
Skia
2018-02-22 22:19:17 +01:00
parent f47f846d26
commit 606f1af4d5
9 changed files with 231 additions and 114 deletions

View File

@ -1,6 +1,6 @@
# -*- coding:utf-8 -*
#
# Copyright 2016,2017
# Copyright 2016,2017,2018
# - Skia <skia@libskia.so>
#
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
@ -62,6 +62,15 @@ class ForumMarkAllAsRead(RedirectView):
return super(ForumMarkAllAsRead, self).get(request, *args, **kwargs)
class ForumFavoriteTopics(ListView):
model = ForumTopic
template_name = "forum/favorite_topics.jinja"
paginate_by = settings.SITH_FORUM_PAGE_LENGTH / 2
def get_queryset(self):
topic_list = self.request.user.favorite_topics.all()
return topic_list
class ForumLastUnread(ListView):
model = ForumTopic
template_name = "forum/last_unread.jinja"
@ -184,6 +193,22 @@ class ForumTopicEditView(CanEditMixin, UpdateView):
pk_url_kwarg = "topic_id"
template_name = "core/edit.jinja"
class ForumTopicSubscribeView(CanViewMixin, SingleObjectMixin, RedirectView):
model = ForumTopic
pk_url_kwarg = "topic_id"
permanent = False
def get(self, request, *args, **kwargs):
self.object = self.get_object()
if request.user in self.object.subscribed_users.all():
self.object.subscribed_users.remove(request.user)
else:
self.object.subscribed_users.add(request.user)
return super().get(request, *args, **kwargs)
def get_redirect_url(self, *args, **kwargs):
return self.object.get_absolute_url()
class ForumTopicDetailView(CanViewMixin, DetailView):
model = ForumTopic