def threads(request, forum_slug): """View all the threads in a forum.""" forum = get_object_or_404(Forum, slug=forum_slug) if not forum.allows_viewing_by(request.user): raise Http404 # Pretend there's nothing there. try: sort = int(request.GET.get('sort', 0)) except ValueError: sort = 0 try: desc = int(request.GET.get('desc', 0)) except ValueError: desc = 0 desc_toggle = 0 if desc else 1 threads_ = sort_threads(forum.thread_set, sort, desc) count = threads_.count() threads_ = threads_.select_related('creator', 'last_post', 'last_post__author') threads_ = paginate(request, threads_, per_page=constants.THREADS_PER_PAGE, count=count) feed_urls = ((reverse('forums.threads.feed', args=[forum_slug]), ThreadsFeed().title(forum)),) is_watching_forum = (request.user.is_authenticated() and NewThreadEvent.is_notifying(request.user, forum)) return render(request, 'forums/threads.html', { 'forum': forum, 'threads': threads_, 'is_watching_forum': is_watching_forum, 'sort': sort, 'desc_toggle': desc_toggle, 'feeds': feed_urls})
def threads(request, forum_slug): """View all the threads in a forum.""" forum = get_object_or_404(Forum, slug=forum_slug) if not forum.allows_viewing_by(request.user): raise Http404 # Pretend there's nothing there. try: sort = int(request.GET.get('sort', 0)) except ValueError: sort = 0 try: desc = int(request.GET.get('desc', 0)) except ValueError: desc = 0 desc_toggle = 0 if desc else 1 threads_ = sort_threads(forum.thread_set, sort, desc) count = threads_.count() threads_ = threads_.select_related('creator', 'last_post', 'last_post__author') threads_ = paginate(request, threads_, per_page=constants.THREADS_PER_PAGE, count=count) feed_urls = ((reverse('forums.threads.feed', args=[forum_slug]), ThreadsFeed().title(forum)),) is_watching_forum = (request.user.is_authenticated() and NewThreadEvent.is_notifying(request.user, forum)) return render(request, 'forums/threads.html', { 'forum': forum, 'threads': threads_, 'is_watching_forum': is_watching_forum, 'sort': sort, 'desc_toggle': desc_toggle, 'feeds': feed_urls})
def test_watch_forum(self): """Watch then unwatch a forum.""" f = forum(save=True) forum_post(thread=thread(forum=f, save=True), save=True) u = user(save=True) self.client.login(username=u.username, password='******') post(self.client, 'forums.watch_forum', {'watch': 'yes'}, args=[f.slug]) assert NewThreadEvent.is_notifying(u, f) # NewPostEvent is not notifying. assert not NewPostEvent.is_notifying(u, f.last_post) post(self.client, 'forums.watch_forum', {'watch': 'no'}, args=[f.slug]) assert not NewThreadEvent.is_notifying(u, f)
def test_watch_forum(self): """Watch then unwatch a forum.""" f = forum(save=True) forum_post(thread=thread(forum=f, save=True), save=True) u = user(save=True) self.client.login(username=u.username, password='******') post(self.client, 'forums.watch_forum', {'watch': 'yes'}, args=[f.slug]) assert NewThreadEvent.is_notifying(u, f) # NewPostEvent is not notifying. assert not NewPostEvent.is_notifying(u, f.last_post) post(self.client, 'forums.watch_forum', {'watch': 'no'}, args=[f.slug]) assert not NewThreadEvent.is_notifying(u, f)
def test_watch_forum(self): """Watch then unwatch a forum.""" f = ForumFactory() PostFactory(thread__forum=f) u = UserFactory() self.client.login(username=u.username, password="******") post(self.client, "forums.watch_forum", {"watch": "yes"}, args=[f.slug]) assert NewThreadEvent.is_notifying(u, f) # NewPostEvent is not notifying. assert not NewPostEvent.is_notifying(u, f.last_post) post(self.client, "forums.watch_forum", {"watch": "no"}, args=[f.slug]) assert not NewThreadEvent.is_notifying(u, f)
def test_watch_forum(self): """Watch then unwatch a forum.""" f = ForumFactory() PostFactory(thread__forum=f) u = UserFactory() self.client.login(username=u.username, password='******') post(self.client, 'forums.watch_forum', {'watch': 'yes'}, args=[f.slug]) assert NewThreadEvent.is_notifying(u, f) # NewPostEvent is not notifying. assert not NewPostEvent.is_notifying(u, f.last_post) post(self.client, 'forums.watch_forum', {'watch': 'no'}, args=[f.slug]) assert not NewThreadEvent.is_notifying(u, f)
def test_watch_forum(self): """Watch then unwatch a forum.""" f = ForumFactory() PostFactory(thread__forum=f) u = UserFactory() self.client.login(username=u.username, password='******') post(self.client, 'forums.watch_forum', {'watch': 'yes'}, args=[f.slug]) assert NewThreadEvent.is_notifying(u, f) # NewPostEvent is not notifying. assert not NewPostEvent.is_notifying(u, f.last_post) post(self.client, 'forums.watch_forum', {'watch': 'no'}, args=[f.slug]) assert not NewThreadEvent.is_notifying(u, f)
def _toggle_watch_forum_as(self, forum, user, turn_on=True): """Watch a forum and return it.""" self.client.login(username=user.username, password="******") watch = "yes" if turn_on else "no" post(self.client, "forums.watch_forum", {"watch": watch}, args=[forum.slug]) # Watch exists or not, depending on watch. if turn_on: assert NewThreadEvent.is_notifying(user, forum), "NewThreadEvent should be notifying." else: assert not NewPostEvent.is_notifying(user, forum), "NewThreadEvent should not be notifying."
def _toggle_watch_forum_as(self, forum, user, turn_on=True): """Watch a forum and return it.""" self.client.login(username=user.username, password='******') watch = 'yes' if turn_on else 'no' post(self.client, 'forums.watch_forum', {'watch': watch}, args=[forum.slug]) # Watch exists or not, depending on watch. if turn_on: assert NewThreadEvent.is_notifying(user, forum), ( 'NewThreadEvent should be notifying.') else: assert not NewPostEvent.is_notifying(user, forum), ( 'NewThreadEvent should not be notifying.')
def _toggle_watch_forum_as(self, forum, user, turn_on=True): """Watch a forum and return it.""" self.client.login(username=user.username, password='******') watch = 'yes' if turn_on else 'no' post(self.client, 'forums.watch_forum', {'watch': watch}, args=[forum.slug]) # Watch exists or not, depending on watch. if turn_on: assert NewThreadEvent.is_notifying(user, forum), ( 'NewThreadEvent should be notifying.') else: assert not NewPostEvent.is_notifying(user, forum), ( 'NewThreadEvent should not be notifying.')
def _toggle_watch_forum_as(self, forum, user, turn_on=True): """Watch a forum and return it.""" self.client.login(username=user.username, password="******") watch = "yes" if turn_on else "no" post(self.client, "forums.watch_forum", {"watch": watch}, args=[forum.slug]) # Watch exists or not, depending on watch. if turn_on: assert NewThreadEvent.is_notifying( user, forum), "NewThreadEvent should be notifying." else: assert not NewPostEvent.is_notifying( user, forum), "NewThreadEvent should not be notifying."
def test_watch_thread(self): """Watch then unwatch a thread.""" t = ThreadFactory() u = UserFactory() self.client.login(username=u.username, password='******') post(self.client, 'forums.watch_thread', {'watch': 'yes'}, args=[t.forum.slug, t.id]) assert NewPostEvent.is_notifying(u, t) # NewThreadEvent is not notifying. assert not NewThreadEvent.is_notifying(u, t.forum) post(self.client, 'forums.watch_thread', {'watch': 'no'}, args=[t.forum.slug, t.id]) assert not NewPostEvent.is_notifying(u, t)
def test_watch_thread(self): """Watch then unwatch a thread.""" t = ThreadFactory() u = UserFactory() self.client.login(username=u.username, password='******') post(self.client, 'forums.watch_thread', {'watch': 'yes'}, args=[t.forum.slug, t.id]) assert NewPostEvent.is_notifying(u, t) # NewThreadEvent is not notifying. assert not NewThreadEvent.is_notifying(u, t.forum) post(self.client, 'forums.watch_thread', {'watch': 'no'}, args=[t.forum.slug, t.id]) assert not NewPostEvent.is_notifying(u, t)
def test_watch_thread(self): """Watch then unwatch a thread.""" t = ThreadFactory() u = UserFactory() self.client.login(username=u.username, password="******") post(self.client, "forums.watch_thread", {"watch": "yes"}, args=[t.forum.slug, t.id]) assert NewPostEvent.is_notifying(u, t) # NewThreadEvent is not notifying. assert not NewThreadEvent.is_notifying(u, t.forum) post(self.client, "forums.watch_thread", {"watch": "no"}, args=[t.forum.slug, t.id]) assert not NewPostEvent.is_notifying(u, t)
def threads(request, forum_slug): """View all the threads in a forum.""" forum = get_object_or_404(Forum, slug=forum_slug) if not forum.allows_viewing_by(request.user): raise Http404 # Pretend there's nothing there. try: sort = int(request.GET.get("sort", 0)) except ValueError: sort = 0 try: desc = int(request.GET.get("desc", 0)) except ValueError: desc = 0 desc_toggle = 0 if desc else 1 threads_ = sort_threads(forum.thread_set, sort, desc) count = threads_.count() threads_ = threads_.select_related("creator", "last_post", "last_post__author") threads_ = paginate(request, threads_, per_page=constants.THREADS_PER_PAGE, count=count) feed_urls = ((reverse("forums.threads.feed", args=[forum_slug]), ThreadsFeed().title(forum)), ) is_watching_forum = request.user.is_authenticated and NewThreadEvent.is_notifying( request.user, forum) return render( request, "forums/threads.html", { "forum": forum, "threads": threads_, "is_watching_forum": is_watching_forum, "sort": sort, "desc_toggle": desc_toggle, "feeds": feed_urls, }, )
def test_delete_removes_watches(self): f = ForumFactory() NewThreadEvent.notify('*****@*****.**', f) assert NewThreadEvent.is_notifying('*****@*****.**', f) f.delete() assert not NewThreadEvent.is_notifying('*****@*****.**', f)
def test_delete_removes_watches(self): f = ForumFactory() NewThreadEvent.notify('*****@*****.**', f) assert NewThreadEvent.is_notifying('*****@*****.**', f) f.delete() assert not NewThreadEvent.is_notifying('*****@*****.**', f)
def test_delete_removes_watches(self): f = forum(save=True) NewThreadEvent.notify('*****@*****.**', f) assert NewThreadEvent.is_notifying('*****@*****.**', f) f.delete() assert not NewThreadEvent.is_notifying('*****@*****.**', f)
def test_delete_removes_watches(self): f = forum(save=True) NewThreadEvent.notify('*****@*****.**', f) assert NewThreadEvent.is_notifying('*****@*****.**', f) f.delete() assert not NewThreadEvent.is_notifying('*****@*****.**', f)