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))
Ejemplo n.º 2
0
 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))
Ejemplo n.º 3
0
 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))
Ejemplo n.º 4
0
    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,)
Ejemplo n.º 5
0
    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
Ejemplo n.º 7
0
    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))