def test_implements(self): if self.dummy is not None: self.failIf(IReferenceable.providedBy(self.dummy)) self.failIf(IExtensibleMetadata.providedBy(self.dummy)) self.failIf(self.dummy.isReferenceable) self.failUnless(IBaseContent.providedBy(self.dummy)) self.failUnless(IATTopicCriterion.providedBy(self.dummy)) self.failUnless(verifyObject(IBaseContent, self.dummy)) self.failUnless(verifyObject(IATTopicCriterion, self.dummy))
def test_implements(self): if self.dummy is not None: self.assertFalse(IReferenceable.providedBy(self.dummy)) self.assertFalse(IExtensibleMetadata.providedBy(self.dummy)) self.assertFalse(self.dummy.isReferenceable) self.assertTrue(IBaseContent.providedBy(self.dummy)) self.assertTrue(IATTopicCriterion.providedBy(self.dummy)) self.assertTrue(verifyObject(IBaseContent, self.dummy)) self.assertTrue(verifyObject(IATTopicCriterion, self.dummy))
def test_implements(self): if self.dummy is not None: self.assertFalse(IReferenceable.providedBy(self.dummy)) self.assertFalse(IExtensibleMetadata.providedBy(self.dummy)) self.assertFalse(self.dummy.isReferenceable) self.assertTrue(IBaseContent.providedBy(self.dummy)) self.assertTrue(IATTopicCriterion.providedBy(self.dummy)) self.assertTrue(verifyObject(IBaseContent, self.dummy)) self.assertTrue(verifyObject(IATTopicCriterion, self.dummy))
def register(self, criterion, indices): if type(indices) is StringType: indices = (indices,) indices = tuple(indices) if indices == (): indices = ALL_INDICES assert IATTopicCriterion.implementedBy(criterion) registerType(criterion, PROJECTNAME) crit_id = criterion.meta_type self[crit_id] = criterion self.portaltypes[criterion.portal_type] = criterion self.criterion2index[crit_id] = indices for index in indices: value = self.index2criterion.get(index, ()) self.index2criterion[index] = value + (crit_id,)
def register(self, criterion, indices): if isinstance(indices, StringType): indices = (indices,) indices = tuple(indices) if indices == (): indices = ALL_INDICES assert IATTopicCriterion.implementedBy(criterion) registerType(criterion, PROJECTNAME) crit_id = criterion.meta_type self[crit_id] = criterion self.portaltypes[criterion.portal_type] = criterion self.criterion2index[crit_id] = indices for index in indices: value = self.index2criterion.get(index, ()) self.index2criterion[index] = value + (crit_id,)
def wireAddPermissions(): """Creates a list of add permissions for all types in this project Must be called **after** all types are registered! """ global permissions atct_types = listTypes(PROJECTNAME) for atct in atct_types: if IATTopic.implementedBy(atct['klass']): permission = AddTopics elif IATTopicCriterion.implementedBy(atct['klass']): permission = "%s Topic: Add %s" % (PROJECTNAME, atct['portal_type']) setDefaultRoles(permission, CRITERION_ROLES) else: permission = "%s: Add %s" % (PROJECTNAME, atct['portal_type']) setDefaultRoles(permission, TYPE_ROLES) permissions[atct['portal_type']] = permission return permissions
def getContentTypesVocabulary(self): tt = getToolByName(self, 'portal_types') types_list = [] from Products.Archetypes.public import listTypes cachefu_types = [t['portal_type'] for t in listTypes(PROJECT_NAME)] atct_criteria = [] try: from Products.ATContentTypes.config import PROJECTNAME as ATCTNAME from Products.ATContentTypes.interfaces import IATTopicCriterion for t in listTypes(ATCTNAME): if IATTopicCriterion.isImplementedByInstancesOf(t['klass']): atct_criteria.append(t['portal_type']) except: pass for t in tt.listTypeInfo(): # filter out a few types id = t.getId() if id == 'TempFolder': continue if id in cachefu_types: continue if id in atct_criteria: continue title = t.getProperty('title') if not title: title = id else: if title != id: title = '%s (%s)' % (title, id) types_list.append((id, title)) types_list.sort(lambda x, y: cmp(x[1], y[1])) return DisplayList(tuple(types_list))