Beispiel #1
0
    def test_modification(self):
        tree = {'title': 'one', 'children': [{'title': 'two', 'children': []}]}

        expected_tree = {
            'title':
            'one',
            'foo':
            'Title one',
            'parent':
            None,
            'children': [{
                'title': 'two',
                'foo': 'Title two',
                'parent': 'Title one',
                'children': []
            }]
        }

        def modifier(node, parent):
            node['foo'] = 'Title %s' % node.get('title')
            node['parent'] = parent and parent.get('foo')

        result_tree = modify_tree(modifier, tree)

        self.assertEqual(result_tree, expected_tree)
Beispiel #2
0
    def __call__(self, tree):

        def filterer(item):
            brain = item.get('item')
            if brain.portal_type in ('Book', 'Chapter'):
                return True

            else:
                return getattr(brain, 'showTitle', None)

        tree = filter_tree(filterer, tree, copy=True)

        def toc_number_prefix_adder(node, parent):
            num = node.get('toc_number', None)

            if num is None:
                # We are on the root node, which is the book - it has
                # no table of content number.
                node['toc_number'] = ''
                num = ''

            else:
                num = '%s.' % num

            for i, child in enumerate(node.get('children', []), 1):
                child['toc_number'] = num + str(i)

        return modify_tree(toc_number_prefix_adder, tree)
    def test_modification(self):
        tree = {
            'title': 'one',
            'children': [

                {'title': 'two',
                 'children': []}]}

        expected_tree = {
            'title': 'one',
            'foo': 'Title one',
            'parent': None,
            'children': [

                {'title': 'two',
                 'foo': 'Title two',
                 'parent': 'Title one',
                 'children': []}]}

        def modifier(node, parent):
            node['foo'] = 'Title %s' % node.get('title')
            node['parent'] = parent and parent.get('foo')

        result_tree = modify_tree(modifier, tree)

        self.assertEqual(result_tree, expected_tree)
Beispiel #4
0
    def __call__(self, tree):

        def filterer(item):
            brain = item.get('item')
            if brain.portal_type in ('Book', 'Chapter'):
                return True

            elif not getattr(brain, 'showTitle', None):
                return False

            elif getattr(brain, 'hideFromTOC', None):
                return False

            else:
                return True

        tree = filter_tree(filterer, tree, copy=True)

        def toc_number_prefix_adder(node, parent):
            num = node.get('toc_number', None)

            if num is None:
                # We are on the root node, which is the book - it has
                # no table of content number.
                node['toc_number'] = ''
                num = ''

            else:
                num = '%s.' % num

            for i, child in enumerate(node.get('children', []), 1):
                child['toc_number'] = num + str(i)

        return modify_tree(toc_number_prefix_adder, tree)