Example #1
0
class StatusMapView(BrowserView):
    """
    ZMI page for managing membrane type "active" status mappings.
    """

    template = ZopeTwoPageTemplateFile('status_map.pt')

    def __init__(self, context, request):
        BrowserView.__init__(self, context, request)
        self.cat_map = ICategoryMapper(context)

    def __call__(self):
        types = self.request.get('types', [])
        for portal_type in types:
            states = self.request.get("%s_active_states" % portal_type, [])
            cat_set = generateCategorySetIdForType(portal_type)
            self.cat_map.replaceCategoryValues(cat_set,
                                               ACTIVE_STATUS_CATEGORY,
                                               states)
        return self.template()

    def allStatesForType(self, portal_type):
        return getAllWFStatesForType(self.context, portal_type)

    def activeStatesForType(self, portal_type):
        cat_set = generateCategorySetIdForType(portal_type)
        return self.cat_map.listCategoryValues(cat_set,
                                               ACTIVE_STATUS_CATEGORY)
 def testMembraneActiveWorkflowMapping(self):
     states = { 'TrainingCenter' : ['active', 'inactive'],
                'eduMember'      : ['active', 'inactive'],
                }
     categoryMap = ICategoryMapper(self.portal.membrane_tool)
     for t, s in states.items():
         categorySet = generateCategorySetIdForType(t)
         self.assertEquals(s, categoryMap.listCategoryValues(categorySet, ACTIVE_STATUS_CATEGORY))
Example #3
0
    def _extractMembraneTypes(self):
        cat_map = ICategoryMapper(self.context)
        fragment = self._doc.createDocumentFragment()

        for mtype in self.context.listMembraneTypes():
            # extract the membrane types
            child = self._doc.createElement('membrane-type')
            child.setAttribute('name', mtype)

            # extract the "active" w/f states for the type
            cat_set = generateCategorySetIdForType(mtype)
            states = cat_map.listCategoryValues(cat_set,
                                                ACTIVE_STATUS_CATEGORY)
            for state in states:
                sub = self._doc.createElement('active-workflow-state')
                sub.setAttribute('name', state)
                child.appendChild(sub)

            fragment.appendChild(child)
        return fragment
Example #4
0
 def testActiveWFStates(self):
     cat_set = generateCategorySetIdForType(DEFAULT_MEMBER_TYPE)
     cat_map = ICategoryMapper(self.mbtool)
     states = cat_map.listCategoryValues(cat_set,
                                         ACTIVE_STATUS_CATEGORY)
     self.failUnless('private' in states and 'public' in states)
Example #5
0
class TestCategoryMapper(ZopeTestCase.ZopeTestCase):

    layer = ZCMLLayer

    def afterSetUp(self):
        self.obj = Foo()
        self.cat_map = ICategoryMapper(self.obj)

    def testAddCategorySet(self):
        cat_set = 'category_set'
        self.cat_map.addCategorySet(cat_set)
        self.failUnless(self.cat_map.hasCategorySet(cat_set))
        self.failUnless(cat_set in self.cat_map.listCategorySets())

    def testDelCategorySet(self):
        cat_set = 'category_set'
        self.cat_map.addCategorySet(cat_set)
        self.failUnless(self.cat_map.hasCategorySet(cat_set))
        self.cat_map.delCategorySet(cat_set)
        self.failIf(self.cat_map.hasCategorySet(cat_set))
        self.failUnless(len(self.cat_map.listCategorySets()) == 0)

    def testAddCategory(self):
        cat_set1 = 'category_set1'
        cat_set2 = 'category_set2'
        cat = 'category'
        self.cat_map.addCategorySet(cat_set1)
        self.cat_map.addCategorySet(cat_set2)
        self.cat_map.addCategory(cat_set1, cat)
        self.failUnless(self.cat_map.hasCategory(cat_set1, cat))
        self.failIf(self.cat_map.hasCategory(cat_set2, cat))

    def testMissingCatSetRaisesError(self):
        self.assertRaises(KeyError, self.cat_map.addToCategory,
                          self.cat_map, 'category_set', 'category')
        self.assertRaises(KeyError, self.cat_map.removeFromCategory,
                          self.cat_map, 'category_set', 'category')
        
    def testMissingCategoryRaisesError(self):
        cat_set = 'category_set'
        self.cat_map.addCategorySet(cat_set)
        self.assertRaises(KeyError, self.cat_map.addToCategory,
                          self.cat_map, cat_set, 'category')
        self.assertRaises(KeyError, self.cat_map.removeFromCategory,
                          self.cat_map, cat_set, 'category')

    def testAddToCategory(self):
        cat_set = 'category_set'
        cat1 = 'category1'
        cat2 = 'category2'
        datum1 = 'datum1'
        datum2 = 'datum2'
        self.cat_map.addCategorySet(cat_set)
        self.cat_map.addCategory(cat_set, cat1)
        self.cat_map.addCategory(cat_set, cat2)
        self.cat_map.addToCategory(cat_set, cat1, datum1)
        self.failUnless(self.cat_map.isInCategory(cat_set, cat1, datum1))
        self.failIf(self.cat_map.isInCategory(cat_set, cat1, datum2))
        self.failIf(self.cat_map.isInCategory(cat_set, cat2, datum1))

        self.cat_map.addToCategory(cat_set, cat1, datum2)
        self.failUnless(self.cat_map.isInCategory(cat_set, cat1, datum1))
        self.failUnless(self.cat_map.isInCategory(cat_set, cat1, datum2))
        self.failUnless(set([datum1, datum2]) == \
                        set(self.cat_map.listCategoryValues(cat_set, cat1)))

    def testRemoveFromCategory(self):
        cat_set = 'category_set'
        cat = 'category'
        datum1 = 'datum1'
        datum2 = 'datum2'
        self.cat_map.addCategorySet(cat_set)
        self.cat_map.addCategory(cat_set, cat)
        self.cat_map.addToCategory(cat_set, cat, datum1)
        self.cat_map.addToCategory(cat_set, cat, datum2)
        self.failUnless(set([datum1, datum2]) == \
                        set(self.cat_map.listCategoryValues(cat_set, cat)))

        self.cat_map.removeFromCategory(cat_set, cat, datum1)
        self.failIf(self.cat_map.isInCategory(cat_set, cat, datum1))
        self.failUnless(self.cat_map.isInCategory(cat_set, cat, datum2))
        self.failUnless(set([datum2]) == \
                        set(self.cat_map.listCategoryValues(cat_set, cat)))