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)
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)
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 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)
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)
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
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())
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'])
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' ]
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()
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)
def __addables(self): return set(IAddableContents(self.context).get_authorized_addables())