def test_review_items(self):
     r = self.renderer(assignment=review.Assignment())
     self.assertEqual(0, len(r.review_items()))
     wf = getToolByName(self.portal, 'portal_workflow')
     wf.doActionFor(self.portal.doc1, 'submit')
     r = self.renderer(assignment=review.Assignment())
     self.assertEqual(1, len(r.review_items()))
     self.assertEqual(r.review_items()[0]['creator'], "Test user")
    def test_full_news_link_local_reviewer(self):
        # login as our test user
        login(self.portal, TEST_USER_NAME)
        setRoles(self.portal, TEST_USER_ID, ['Member'])

        # there should be no full news link on site root for our local reviewer
        r = self.renderer(assignment=review.Assignment())
        self.assertFalse(r.full_review_link())

        # get renderer in context of our reviewer's folder
        r = self.renderer(context=self.folder1, assignment=review.Assignment())
        self.assertEqual(r.full_review_link(),
                         '%s/full_review_list' % self.folder1.absolute_url())
예제 #3
0
    def test_full_news_link_local_reviewer(self):
        # login as our test user
        self.login('test_user_1_')
        self.setRoles(['Member'])

        # there should be no full news link on site root for our local reviewer
        r = self.renderer(assignment=review.Assignment())
        self.failIf(r.full_review_link())

        # get renderer in context of our reviewer's folder
        r = self.renderer(context=self.folder1, assignment=review.Assignment())
        self.assertEqual(r.full_review_link(),
                         '%s/full_review_list' % self.folder1.absolute_url())
예제 #4
0
def convert_legacy_portlets(context):
    """Convert legacy portlets (left_slots, right_slots) in the given
    context to new-style portlets.
    """

    portletsMapping = {
        'portlet_login': login.Assignment(),
        'portlet_news': news.Assignment(count=5),
        'portlet_navigation': navigation.Assignment(),
        'portlet_review': review.Assignment(),
        'portlet_recent': recent.Assignment(count=5),
        'portlet_related': DONT_MIGRATE,
        'portlet_languages': DONT_MIGRATE,
        'portlet_calendar': calendar.Assignment(),
        'portlet_events': events.Assignment(count=5),
    }

    # Convert left_slots and right_slots to portlets

    left = getUtility(IPortletManager, name='plone.leftcolumn')
    right = getUtility(IPortletManager, name='plone.rightcolumn')

    leftAssignable = getMultiAdapter((context, left),
                                     IPortletAssignmentMapping).__of__(context)
    rightAssignable = getMultiAdapter(
        (context, right), IPortletAssignmentMapping).__of__(context)

    IPortletPermissionChecker(leftAssignable)()
    IPortletPermissionChecker(rightAssignable)()

    leftChooser = INameChooser(leftAssignable)
    rightChooser = INameChooser(rightAssignable)

    left_slots = getattr(aq_base(context), 'left_slots', [])
    right_slots = getattr(aq_base(context), 'right_slots', [])

    for item in left_slots:
        path = item.split('/')
        if len(path) == 4:
            newPortlet = portletsMapping.get(path[1], None)
            if newPortlet is None and path[0] in (
                    'context', 'here') and path[2] == 'macros':
                newPortlet = classic.Assignment(path[1], path[3])
            if newPortlet is not None and newPortlet is not DONT_MIGRATE:
                leftAssignable[leftChooser.chooseName(None,
                                                      newPortlet)] = newPortlet

    for item in right_slots:
        path = item.split('/')
        if len(path) == 4:
            newPortlet = portletsMapping.get(path[1], None)
            if newPortlet is None and path[0] in (
                    'context', 'here') and path[2] == 'macros':
                newPortlet = classic.Assignment(path[1], path[3])
            if newPortlet is not None and newPortlet is not DONT_MIGRATE:
                rightAssignable[rightChooser.chooseName(
                    None, newPortlet)] = newPortlet

    context.left_slots = []
    context.right_slots = []
예제 #5
0
    def renderer(self, context=None, request=None, view=None, manager=None, assignment=None):
        context = context or self.folder
        request = request or self.folder.REQUEST
        view = view or self.folder.restrictedTraverse('@@plone')
        manager = manager or getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal)
        assignment = assignment or review.Assignment()

        return getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer)
예제 #6
0
    def testRenderer(self):
        context = self.folder
        request = self.folder.REQUEST
        view = self.folder.restrictedTraverse('@@plone')
        manager = getUtility(IPortletManager, name='plone.rightcolumn', context=self.portal)
        assignment = review.Assignment()

        renderer = getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer)
        self.assertTrue(isinstance(renderer, review.Renderer))
 def testInterfaces(self):
     portlet = review.Assignment()
     self.assertTrue(IPortletAssignment.providedBy(portlet))
     self.assertTrue(IPortletDataProvider.providedBy(portlet.data))
 def test_title(self):
     r = self.renderer(assignment=review.Assignment())
     self.assertEqual(str(r.title), 'box_review_list')
 def test_full_news_link(self):
     r = self.renderer(assignment=review.Assignment())
     self.assertTrue(r.full_review_link().endswith('/full_review_list'))
예제 #10
0
 def testInterfaces(self):
     portlet = review.Assignment()
     self.failUnless(IPortletAssignment.providedBy(portlet))
     self.failUnless(IPortletDataProvider.providedBy(portlet.data))