def testInvokeEditView(self): mapping = PortletAssignmentMapping() request = self.folder.REQUEST mapping['foo'] = recent.Assignment() editview = getMultiAdapter((mapping['foo'], request), name='edit') self.failUnless(isinstance(editview, recent.EditForm))
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 = []
def test_recent_items(self): self.setRoles(('Manager', )) if 'news' in self.portal: self.portal._delObject('news') if 'events' in self.portal: self.portal._delObject('events') if 'front-page' in self.portal: self.portal._delObject('front-page') if 'Members' in self.portal: self.portal._delObject('Members') self.folder = None self.portal.invokeFactory('Document', 'doc1') self.portal.invokeFactory('Document', 'doc2') r = self.renderer(assignment=recent.Assignment()) self.assertEquals(2, len(r.recent_items())) r = self.renderer(assignment=recent.Assignment(count=1)) self.assertEquals(1, len(r.recent_items()))
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 = recent.Assignment() renderer = getMultiAdapter( (context, request, view, manager, assignment), IPortletRenderer) self.failUnless(isinstance(renderer, recent.Renderer))
def renderer(self, context=None, request=None, view=None, manager=None, assignment=None): context = context or self.portal request = request or self.app.REQUEST view = view or self.portal.restrictedTraverse('@@plone') manager = manager or getUtility( IPortletManager, name='plone.rightcolumn', context=self.portal) assignment = assignment or recent.Assignment() return getMultiAdapter((context, request, view, manager, assignment), IPortletRenderer)
def testInterfaces(self): portlet = recent.Assignment() self.failUnless(IPortletAssignment.providedBy(portlet)) self.failUnless(IPortletDataProvider.providedBy(portlet.data))
def test_title(self): r = self.renderer(assignment=recent.Assignment()) self.assertEquals(str(r.title), 'box_recent_changes')
def test_recently_modified_link(self): r = self.renderer(assignment=recent.Assignment()) self.failUnless( r.recently_modified_link().endswith('/recently_modified'))
def testInterfaces(self): portlet = recent.Assignment() self.assertTrue(IPortletAssignment.providedBy(portlet)) self.assertTrue(IPortletDataProvider.providedBy(portlet.data))
def test_recently_modified_link(self): r = self.renderer(assignment=recent.Assignment()) self.assertTrue( r.recently_modified_link().endswith('/recently_modified'))
def recent_create(self, data): return recent.Assignment(**data)