def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = portlet_tasks.Assignment()
        editview = queryMultiAdapter(
            (mapping['foo'], request), name='edit', default=None)
        self.failUnless(isinstance(mapping.values()[0],
                                   portlet_tasks.Assignment))
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = portlet_tasks.Assignment()
        editview = queryMultiAdapter((mapping['foo'], request),
                                     name='edit',
                                     default=None)
        self.failUnless(
            isinstance(list(mapping.values())[0], portlet_tasks.Assignment))
    def test_invoke_edit_form(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = news.Assignment(count=5)
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        editview.update()
        editview.applyChanges(data={'count': 6,
                                    EXTENDER_PREFIX+'.css_class': 'my-class'})
        portlet_assignment = mapping.values()[0]
        settings = IPortletAssignmentSettings(portlet_assignment)

        self.assertEqual(portlet_assignment.count, 6)
        # We have not extended our storage adapter, so nothing gets saved:
        self.assertIsNone(settings.get('css_class', None))

        # Register our schemaextender
        gsm = getGlobalSiteManager()
        gsm.registerAdapter(PortletCssClassAdapter,
                            (IPortletAssignment,))
        gsm.registerAdapter(PortletCssClassFormExtender,
                            (Interface,
                             IDefaultBrowserLayer,
                             IPortletEditForm),
                            IFormExtender,
                            'portletcssclass.extender')
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = news.Assignment(count=5)
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        editview.update()
        editview.applyChanges(data={'count': 6,
                                    EXTENDER_PREFIX+'.css_class': 'my-class'})
        portlet_assignment = mapping.values()[0]
        settings = IPortletAssignmentSettings(portlet_assignment)

        gsm.unregisterAdapter(PortletCssClassFormExtender,
                              (Interface,
                               IDefaultBrowserLayer,
                               IPortletEditForm),
                              IFormExtender,
                              'portletcssclass.extender')
        gsm.unregisterAdapter(PortletCssClassAdapter,
                              (IPortletAssignment,))

        self.assertEqual(portlet_assignment.count, 6)
        # The prefix is used for the form field, not for the stored data:
        self.assertEqual(settings.get('css_class'), 'my-class')
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = shibbolethloginportlet.Assignment()
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, shibbolethloginportlet.EditForm))
Esempio n. 5
0
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = classic.Assignment(template='portlet_recent', macro='portlet')
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, classic.EditForm))
Esempio n. 6
0
 def afterSetUp(self):
     self.manager = getUtility(IPortletManager, name=u'plone.leftcolumn')
     self.cat = self.manager[USER_CATEGORY]
     self.cat[user_name] = PortletAssignmentMapping(
         manager=u'plone.leftcolumn',
         category=USER_CATEGORY,
         name=user_name)
Esempio n. 7
0
    def test_portlet_collection(self):

        query = [{
            'i': 'portal_type',
            'o': 'plone.app.querystring.operation.selection.is',
            'v': ['Document']
        }]
        # add a few documents
        for i in range(6):
            self.folder.invokeFactory('Document', 'document_%s' % i)
            getattr(self.folder, 'document_%s' % i).reindexObject()

        collection = getattr(self.folder, 'collection')
        collection.setQuery(query)

        # the documents are returned by the collection
        collection_num_items = len(self.folder.collection.queryCatalog())
        # We better have some documents - we should have 8
        self.failUnless(collection_num_items >= 8)

        mapping = PortletAssignmentMapping()
        mapping['foo'] = carousel.Assignment(
            header=u"Test carousel",
            target_collection='/Members/test_user_1_/collection')
        r = self.renderer(context=None,
                          request=None,
                          view=None,
                          manager=None,
                          assignment=mapping['foo'])

        # sanity check
        self.assertEqual(r.collection().id, 'collection')

        # we want the portlet to return us the same results as the collection
        self.assertEquals(collection_num_items, len(r.results()))
Esempio n. 8
0
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = ngcollection.Assignment(header=u"title")
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, ngcollection.EditForm))
Esempio n. 9
0
    def testSimpleQuery(self):
        # set up our collection to search for Folders
        crit = self.folder.collection.addCriterion('portal_type',
                                                   'ATSimpleStringCriterion')
        crit.setValue('Folder')

        # add a few folders
        for i in range(6):
            self.folder.invokeFactory('Folder', 'folder_%s' % i)
            getattr(self.folder, 'folder_%s' % i).reindexObject()

        # the folders are returned by the topic
        collection_num_items = len(self.folder.collection.queryCatalog())
        # We better have some folders
        self.failUnless(collection_num_items >= 6)

        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST
        mapping['foo'] = ngcollection.Assignment(
            header=u"title",
            target_collection='/Members/test_user_1_/collection')
        collectionrenderer = self.renderer(context=None,
                                           request=None,
                                           view=None,
                                           manager=None,
                                           assignment=mapping['foo'])

        # we want the portlet to return us the same results as the collection
        self.assertEquals(collection_num_items,
                          len(collectionrenderer.results()))
Esempio n. 10
0
    def test_show_more_label(self):
        # set up our portlet renderer
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST
        mapping['foo'] = ngcollection.Assignment(
            header=u"title",
            random=True,
            target_collection='/Members/test_user_1_/collection')
        collectionrenderer = self.renderer(context=None,
                                           request=None,
                                           view=None,
                                           manager=None,
                                           assignment=mapping['foo'])
        self.assertEquals(collectionrenderer.show_more_label(), 'More…')

        mapping['buz'] = ngcollection.Assignment(
            header=u"title",
            random=True,
            target_collection='/Members/test_user_1_/collection',
            show_more_label=u"View more")
        collectionrenderer = self.renderer(context=None,
                                           request=None,
                                           view=None,
                                           manager=None,
                                           assignment=mapping['buz'])
        self.assertEquals(collectionrenderer.show_more_label(), 'View more')
Esempio n. 11
0
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.portal.REQUEST

        mapping['foo'] = tagcloudportlet.Assignment()
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, tagcloudportlet.EditForm))
Esempio n. 12
0
    def test_invoke_editview(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = voteportlet.Assignment(header='Polls', poll='latest')
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.assertTrue(isinstance(editview, voteportlet.EditForm))
Esempio n. 13
0
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = richportlet.Assignment(title=u"rich portlet title", text="rich portlet text")
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, richportlet.EditForm))
Esempio n. 14
0
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.portal.REQUEST

        mapping['foo'] = mailinglijst.Assignment(name="foo")
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, mailinglijst.EditForm))
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = practical_solutions.Assignment(["agriculture"])
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, practical_solutions.EditForm))
Esempio n. 16
0
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = producentregisteringhelp.Assignment()
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, producentregisteringhelp.EditForm))
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.portal.REQUEST

        mapping['foo'] = static.Assignment(header=u"title", text="text")
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, static.EditForm))
Esempio n. 18
0
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = login.Assignment()
        editview = queryMultiAdapter((mapping['foo'], request), name='edit', default=None)
        self.assertTrue(editview is None)
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()

        mapping['test'] = weather.Assignment()
        editview = getMultiAdapter((mapping['test'], self.request),
                                   name='edit')
        self.assertTrue(isinstance(editview, weather.EditForm))
Esempio n. 20
0
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = navigation.Assignment()
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, navigation.EditForm))
Esempio n. 21
0
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = news.Assignment(count=5)
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.assertTrue(isinstance(editview, news.EditForm))
Esempio n. 22
0
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = librarianworkplans.Assignment()
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, librarianworkplans.EditForm))
    def testSimpleQuery(self):
        # set up our collection to search for Folders
        self.folder.collection.query = [{
            'i': 'portal_type',
            'o': 'plone.app.querystring.operation.string.is',
            'v': 'Folder',
        }]

        # add a few folders
        for i in range(6):
            self.folder.invokeFactory('Folder', 'folder_%s' % i)
            getattr(self.folder, 'folder_%s' % i).reindexObject()

        # the folders are returned by the topic
        collection_num_items = len(self.folder.collection.results())
        # We better have some folders
        self.assertTrue(collection_num_items >= 6)

        mapping = PortletAssignmentMapping()
        mapping['foo'] = collection.Assignment(
            header=u"title",
            uid=self.folder.collection.UID(),
            exclude_context=False,
        )
        collectionrenderer = self.renderer(context=None,
                                           request=None,
                                           view=None,
                                           manager=None,
                                           assignment=mapping['foo'])
        # we want the portlet to return us the same results as the collection
        self.assertEqual(collection_num_items,
                         len(collectionrenderer.results()))
Esempio n. 24
0
def add_quickupload_portlet(portal):
    # Do not set up quickupload portlet in profile's portlet.xml.
    # The Form provided there does not work without a actual request.
    # Thus we avoid to setup the portlet in tests.
    # Note to future me: If you ever wanna reliable produce a segmentation fault,
    # just remove the condition :-D
    return
    if portal.REQUEST.URL not in ['http://foo', 'http://nohost']:
        manager = getUtility(IPortletManager, name='plone.rightcolumn')
        category = manager.get(CONTENT_TYPE_CATEGORY)
        portal_type = 'ftw.noticeboard.Notice'

        mapping = category.get(portal_type, None)

        if mapping is None:
            mapping = mapping[portal_type] = PortletAssignmentMapping(
                manager=manager,
                category=CONTENT_TYPE_CATEGORY,
                name=portal_type)

        if 'quickupload' not in mapping:
            portlet = Assignment(
                header='Upload',
                upload_portal_type='ftw.noticeboard.NoticeImage',
                upload_media_type='image'
            )
            mapping['quickupload'] = portlet
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = actions.Assignment(ptitle=u'actions', category=u'document', show_icons=True)
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, actions.EditForm))
        return
Esempio n. 26
0
    def testInvokeEditView(self):
        for module in [p['module'] for p in self.portlets]:
            mapping = PortletAssignmentMapping()
            request = self.folder.REQUEST

            mapping['foo'] = module.Assignment()
            editview = getMultiAdapter((mapping['foo'], request), name='edit')
            self.failUnless(isinstance(editview, module.EditForm))
    def test_invoke_edit_view(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = osha_items.Assignment()
        editview = component.getMultiAdapter((mapping['foo'], request),
                                             name='edit')
        self.failUnless(isinstance(editview, osha_items.EditForm))
Esempio n. 28
0
 def testNameChooser(self):
     mapping = PortletAssignmentMapping()
     chooser = INameChooser(mapping)
     c = classic.Assignment()
     mapping[chooser.chooseName(None, c)] = c
     self.failUnless(c.__name__)
     d = classic.Assignment()
     self.failIfEqual(chooser.chooseName(None, d), c.__name__)
Esempio n. 29
0
 def testNameChooser(self):
     mapping = PortletAssignmentMapping()
     chooser = INameChooser(mapping)
     c = classic.Assignment()
     mapping[chooser.chooseName(None, c)] = c
     self.assertTrue(c.__name__)
     d = classic.Assignment()
     self.assertFalse(chooser.chooseName(None, d) == c.__name__)
Esempio n. 30
0
    def test_invoke_edit_view(self):
        # NOTE: This test can be removed if the portlet has no edit form
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = mybookmarksportlet.Assignment()
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, mybookmarksportlet.EditForm))
Esempio n. 31
0
 def getAssignmentsForManager(self, manager):
     key = self.request['key']
     column = getUtility(IPortletManager, name=manager.__name__)
     category = column[GROUP_CATEGORY]
     mapping = category.get(key, None)
     if mapping is None:
         mapping = category[key] = PortletAssignmentMapping(
             manager=manager.__name__, category=GROUP_CATEGORY, name=key)
     return mapping.values()
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()

        mapping['foo'] = portlet_events.Assignment(count=5)
        editview = getMultiAdapter((mapping['foo'], self.request), name='edit')
        if PLONE5:
            self.assertTrue(isinstance(editview, portlet_events.EditForm))
        else:
            self.assertTrue(isinstance(editview, bbb_portlet_events.EditForm))
    def testInvokeEditView(self):
        mapping = PortletAssignmentMapping()
        request = self.folder.REQUEST

        mapping['foo'] = portlet_mod.Assignment()
        editview = getMultiAdapter((mapping['foo'], request), name='edit')
        self.failUnless(isinstance(editview, portlet_mod.EditForm))

        editview.setUpWidgets(True)
        editview.handle_edit_action.success(dict(
            title="Test Title",
            feeds="Test Feeds",
            items_shown=16,
            cache_timeout="32"))
        assignment = mapping.values()[0]
        self.failUnless(isinstance(assignment, portlet_mod.Assignment))
        self.assertEqual(assignment.title, "Test Title")
        self.assertEqual(assignment.feeds, "Test Feeds")
        self.assertEqual(assignment.items_shown, 16)
        self.assertEqual(assignment.cache_timeout, "32")
Esempio n. 34
0
def localPortletAssignmentMappingAdapter(context, manager):
    """Zope 2 version of the localPortletAssignmentMappingAdapter factory.
    """
    annotations = IAnnotations(context)
    local = annotations.get(CONTEXT_ASSIGNMENT_KEY, {})
    portlets = local.get(manager.__name__, None)
    if portlets is None:
        # Return new mapping without storing it yet,
        # but pass along the context so it can be stored
        # if an assignment is added.
        portlets = PortletAssignmentMapping(
            manager=manager.__name__,
            category=CONTEXT_CATEGORY,
            context=context)

    # XXX: For graceful migration
    if not getattr(portlets, '__manager__', ''):
        portlets.__manager__ = manager.__name__

    if not getattr(portlets, '__category__', ''):
        portlets.__category__ = CONTEXT_CATEGORY

    return portlets