def get_posts(self, user, forum, thread, kwargs): queryset = self.get_posts_queryset(user, forum, thread) queryset = self.exclude_invisible_posts(queryset, user, forum, thread) page = paginate(queryset, kwargs.get('page', 0), settings.MISAGO_POSTS_PER_PAGE, settings.MISAGO_THREAD_TAIL) posts = [] for post in page.object_list: post.forum = forum post.thread = thread add_acl(user, post) if post.poster: poster_state = get_user_state(post.poster, user.acl) post.poster.online_state = poster_state posts.append(post) if page.next_page_first_item: add_events_to_posts( user, thread, posts, page.next_page_first_item.posted_on) else: add_events_to_posts(user, thread, posts) return page, posts
def test_add_events_to_posts(self): """add_events_to_posts makes posts event-aware""" message = "Test event was recorded." for p in xrange(2): reply_thread(self.thread, posted_on=timezone.now()) event = record_event(self.user, self.thread, "check", message) for p in xrange(2): reply_thread(self.thread, posted_on=timezone.now()) posts = [p for p in self.thread.post_set.all().order_by('id')] add_events_to_posts(self.user, self.thread, posts) for i, post in enumerate(posts): if i == 1: self.assertEqual(post.events[0].message, message) else: self.assertEqual(post.events, [])
def get_posts(self, user, forum, thread, kwargs): queryset = self.get_posts_queryset(user, forum, thread) page = paginate(queryset, kwargs.get('page', 0), 10, 3) posts = [] for post in page.object_list: add_acl(user, post) if post.poster: poster_state = get_user_state(post.poster, user.acl) post.poster.online_state = poster_state posts.append(post) if page.next_page_first_item: add_events_to_posts(user, thread, posts, page.next_page_first_item.posted_on) else: add_events_to_posts(user, thread, posts) return page, posts
def get_posts(self, user, forum, thread, kwargs): queryset = self.get_posts_queryset(user, forum, thread) page = paginate(queryset, kwargs.get('page', 0), 10, 3) posts = [] for post in page.object_list: add_acl(user, post) if post.poster: poster_state = get_user_state(post.poster, user.acl) post.poster.online_state = poster_state posts.append(post) if page.next_page_first_item: add_events_to_posts( user, thread, posts, page.next_page_first_item.posted_on) else: add_events_to_posts(user, thread, posts) return page, posts