def test_forum_change_settings(self): settings = get_current_registry().settings settings['kotti_forum.forum_settings.use_batching'] = u'false' settings['kotti_forum.forum_settings.pagesize'] = u'2' settings['kotti_forum.forum_settings.use_auto_batching'] = u'false' settings['kotti_forum.forum_settings.link_headline_overview'] = u'false' b_settings = forum_settings() assert b_settings['use_batching'] == False assert b_settings['pagesize'] == 2 assert b_settings['use_auto_batching'] == False assert b_settings['link_headline_overview'] == False
def test_forum_wrong_settings(self): settings = get_current_registry().settings settings['kotti_forum.forum_settings.use_batching'] = u'blibs' settings['kotti_forum.forum_settings.pagesize'] = u'blabs' settings['kotti_forum.forum_settings.use_auto_batching'] = u'blubs' settings['kotti_forum.forum_settings.link_headline_overview'] = u'blobs' b_settings = forum_settings() assert b_settings['use_batching'] == False assert b_settings['pagesize'] == 10 assert b_settings['use_auto_batching'] == False assert b_settings['link_headline_overview'] == False
def view(self): session = DBSession() query = session.query(Topic).filter( Topic.parent_id == self.context.id) items = query.all() modification_dates_and_items = [] for item in items: if item.children: sorted_posts = sorted(item.children, key=lambda x: x.modification_date, reverse=True) modification_dates_and_items.append( (sorted_posts[0].modification_date, sorted_posts[0], item)) else: modification_dates_and_items.append( (item.modification_date, item, item)) if self.context.sort_order_is_ascending: items = sorted(modification_dates_and_items) else: items = sorted(modification_dates_and_items, reverse=True) page = self.request.params.get('page', 1) settings = forum_settings() if settings['use_batching']: items = Batch.fromPagenumber(items, pagesize=settings['pagesize'], pagenumber=int(page)) return { 'api': template_api(self.context, self.request), 'macros': get_renderer('templates/macros.pt').implementation(), 'items': items, 'settings': settings, }
def view(self): session = DBSession() # Posts, if we have them. order_by = Post.modification_date if not self.context.sort_order_is_ascending: order_by = Post.modification_date.desc() query = (session.query(Post) .filter(Post.parent_id == self.context.id) .order_by(order_by) ) top_level_posts = query.all() post_counts_and_trees = [] for post in top_level_posts: if post.children: tree = nodes_tree(self.request, post) post_count = len(tree.tolist()) else: tree = (post) post_count = 1 post_tree = { 'tree': { 'children': [tree], }, } post_counts_and_trees.append((post_count, post, post_tree)) # Votes, if we have them. votes = None vote_data = {} vote_data['Sum'] = 0 vote_data['Count'] = 0 vote_data['Plus'] = 0 vote_data['Zero'] = 0 vote_data['Minus'] = 0 votes_and_vote_objs = [] if self.context.votable: query = session.query(Vote).filter( Vote.parent_id == self.context.id) votes = query.all() for vote in votes: vote_data['Sum'] += vote.vote vote_data['Count'] += 1 if vote.vote > 0: vote_data['Plus'] += 1 elif vote.vote == 0: vote_data['Zero'] += 1 else: vote_data['Minus'] += 1 votes_and_vote_objs.append((vote.vote, vote, 'vote')) if votes_and_vote_objs: if self.context.sort_order_is_ascending: votes_and_vote_objs = sorted(votes_and_vote_objs) else: votes_and_vote_objs = sorted(votes_and_vote_objs, reverse=True) page = self.request.params.get('page', 1) settings = forum_settings() if settings['use_batching']: post_items = Batch.fromPagenumber(post_counts_and_trees, pagesize=settings['pagesize'], pagenumber=int(page)) return { 'api': template_api(self.context, self.request), 'macros': get_renderer('templates/macros.pt').implementation(), 'vote_items': votes_and_vote_objs, 'vote_data': vote_data, 'items': post_items, 'settings': settings, }
def test_forum_default_settings(self): b_settings = forum_settings() assert b_settings['use_batching'] == True assert b_settings['pagesize'] == 10 assert b_settings['use_auto_batching'] == True assert b_settings['link_headline_overview'] == True