Exemplo n.º 1
0
 def update(self):
     if self.toc_container is None:
         self.toc_container = self.context.get_container()
     assert IContainer.providedBy(self.toc_container)
     if self.toc_content_types is None:
         addables = IAddableContents(self.toc_container)
         self.toc_content_types = addables.get_container_addables(IPublishable)
Exemplo n.º 2
0
 def update(self):
     if self.toc_container is None:
         self.toc_container = self.context.get_container()
     assert IContainer.providedBy(self.toc_container)
     if self.toc_content_types is None:
         addables = IAddableContents(self.toc_container)
         self.toc_content_types = addables.get_container_addables(
             IPublishable)
Exemplo n.º 3
0
def silva_content_types(context):
    contents = []
    container = context.get_container()
    addables = IAddableContents(container)
    for addable in addables.get_container_addables(IPublishable):
        contents.append(SimpleTerm(value=addable, token=addable,
                                   title=addable))
    return SimpleVocabulary(contents)
Exemplo n.º 4
0
def silva_content_types(context):
    contents = []
    container = context.get_container()
    addables = IAddableContents(container)
    for addable in addables.get_container_addables(IPublishable):
        contents.append(SimpleTerm(
                value=addable,
                token=addable,
                title=addable))
    return SimpleVocabulary(contents)
    def test_addables_all(self):
        """Test adapter: get all addables
        """
        addables = IAddableContents(self.root)
        self.assertTrue(verifyObject(IAddableContents, addables))
        self.assertEqual(addables.get_all_addables(), DEFAULT_ALL_ADDABLES)

        self.root.set_silva_addables_allowed_in_container(
            ['Silva Image', 'Silva File'])

        self.assertEqual(addables.get_all_addables(), DEFAULT_ALL_ADDABLES)
Exemplo n.º 6
0
 def configure_addables(self, root, addables, not_addables=[]):
     """Configuration addable on a Silva root.
     """
     self._is_installed.addables = True
     current_addables = root.get_silva_addables_allowed_in_container()
     if not (current_addables or not_addables):
         return
     new_addables = IAddableContents(root).get_container_addables()
     for addable in not_addables:
         if addable in new_addables:
             new_addables.remove(addable)
     for addable in addables:
         if addable not in new_addables:
             new_addables.append(addable)
     root.set_silva_addables_allowed_in_container(new_addables)
Exemplo n.º 7
0
 def get_silva_addables_allowed_in_container(self):
     result = [
         'Silva Document', 'Silva Software Release',
         'Silva Software Activity'
     ]
     result.extend(IAddableContents(self).get_all_addables(IAsset))
     return result
Exemplo n.º 8
0
 def getAvailableMetaTypes(self):
     container = self.query.get_container()
     meta_types = []
     for content in IAddableContents(container).get_all_addables():
         meta_types.append({
             "title": content.replace('Silva ', ''),
             "value": content
         })
     return meta_types
    def test_root_not_addable(self):
        """Silva Root should never be addable.
        """
        root_addables = IAddableContents(self.root)
        self.assertFalse(
            'Silva Root' in root_addables.get_container_addables())
        self.assertFalse(
            'Silva Root' in root_addables.get_authorized_addables())
        self.assertFalse(
            'Silva Root' in root_addables.get_all_addables())

        folder_addables = IAddableContents(self.root.folder)
        self.assertFalse(
            'Silva Root' in folder_addables.get_container_addables())
        self.assertFalse(
            'Silva Root' in folder_addables.get_authorized_addables())
        self.assertFalse(
            'Silva Root' in folder_addables.get_all_addables())
Exemplo n.º 10
0
    def test_redirectlink_is_not_addable(self):
        """A redirect link should not be addable.
        """
        service_extensions = self.root.service_extensions
        service_extensions.install('silva.app.redirectlink')

        # Check addables.
        addables = IAddableContents(self.root)
        self.assertTrue(verifyObject(IAddableContents, addables))
        self.assertNotIn(
            'Silva Permanent Redirect Link',
            addables.get_all_addables())
        self.assertNotIn(
            'Silva Permanent Redirect Link',
            addables.get_container_addables())
        self.assertNotIn(
            'Silva Permanent Redirect Link',
            addables.get_authorized_addables())
    def test_addables_container(self):
        """Test adapter: get all addables in a given container.

        (Even if you don't have the right to add them).
        """
        folder_addables = IAddableContents(self.root.folder)
        self.assertTrue(verifyObject(IAddableContents, folder_addables))
        self.assertEqual(
            folder_addables.get_container_addables(), DEFAULT_ALL_ADDABLES)

        self.root.set_silva_addables_allowed_in_container(
            ['Silva Publication', 'Silva File'])

        root_addables = IAddableContents(self.root)
        self.assertEqual(
            root_addables.get_container_addables(),
            ['Silva Publication', 'Silva File'])
        folder_addables = IAddableContents(self.root.folder)
        self.assertEqual(
            folder_addables.get_container_addables(),
            ['Silva Publication', 'Silva File'])
    def test_addables_authorized(self):
        """Test adapter: get all authorized addables in a given
        container.

        Author doesn't have the right to add publications.
        """
        folder_addables = IAddableContents(self.root.folder)
        self.assertTrue(verifyObject(IAddableContents, folder_addables))
        self.assertEqual(
            folder_addables.get_authorized_addables(),
            AUTHOR_ALL_ADDABLES)

        self.root.set_silva_addables_allowed_in_container(
            ['Silva Publication', 'Silva File'])

        root_addables = IAddableContents(self.root)
        self.assertEqual(
            root_addables.get_authorized_addables(),
            ['Silva File'])
        folder_addables = IAddableContents(self.root.folder)
        self.assertEqual(
            folder_addables.get_authorized_addables(),
            ['Silva File'])
Exemplo n.º 13
0
 def list_addable_policies(self, content):
     allowed_addables = IAddableContents(content).get_authorized_addables()
     return [
         p for p in self.list_policies()
         if p in allowed_addables or p == 'None'
     ]
Exemplo n.º 14
0
def get_container_content_types(context):
    """Return meta_types of all content can be used in the Silva site.
    """
    container = context.get_root()
    return IAddableContents(container).get_all_addables()
Exemplo n.º 15
0
def get_publishable_content_types(context):
    """Return meta_types of content that can be published in the Silva
    site.
    """
    container = context.get_root()
    return IAddableContents(container).get_all_addables(require=IPublishable)
Exemplo n.º 16
0
 def __addables(self):
     return set(IAddableContents(self.context).get_authorized_addables())