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
Exemple #3
0
    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,
            }
Exemple #4
0
    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