Esempio n. 1
0
 def _get_viewlet_manager(self, context, manager_name):
     """ """
     view = BrowserView(context, self.request)
     viewlet_manager = getMultiAdapter((context, self.request, view),
                                       IViewletManager, manager_name)
     viewlet_manager.update()
     return viewlet_manager
Esempio n. 2
0
 def _get_viewlet_manager(self, context):
     """ """
     view = BrowserView(self.eea_folder, self.request)
     manager_name = 'collective.eeafaceted.z3ctable.bottomabovenav'
     viewlet_manager = getMultiAdapter((context, self.request, view),
                                       IViewletManager, manager_name)
     viewlet_manager.update()
     return viewlet_manager
Esempio n. 3
0
    def test_viewlet_available(self):
        manager_name = 'xxx'
        view = BrowserView(self.context, self.request)
        manager = getMultiAdapter((self.context, self.request, view),
                                  IViewletManager, manager_name)

        manager.update()

        my_viewlet = [x for x in manager.viewlets if x.__name__ == 'xxx']
        self.assertTrue(my_viewlet)
 def setUp(self):
     super(TestDocumentByLineViewlet, self).setUp()
     # get the viewlet
     doc = api.content.create(type='Document',
                              id='doc',
                              container=self.portal)
     view = BrowserView(doc, self.portal.REQUEST)
     manager = getMultiAdapter((doc, self.portal.REQUEST, view),
                               IViewletManager, 'plone.belowcontenttitle')
     manager.update()
     self.viewlet = manager.get(u'imio.history.documentbyline')
Esempio n. 5
0
 def _get_viewlets(self, context, manager_name):
     view = BrowserView(self.portal, self.request)
     manager = queryMultiAdapter((context, self.request, view),
                                 IViewletManager,
                                 name=manager_name)
     viewlets = getAdapters(
         (manager.context, manager.request, manager.__parent__, manager),
         IViewlet)
     viewlets_dict = {}
     for name, viewlet in viewlets:
         viewlets_dict[name] = viewlet
     return viewlets_dict
Esempio n. 6
0
    def get_viewlet(self, context):
        view = BrowserView(context, context.REQUEST)
        manager_name = 'plone.portalheader'
        manager = queryMultiAdapter((context, context.REQUEST, view),
                                    IViewletManager, manager_name)
        self.assertTrue(manager,
                        'Could not find %s viewlet manager' % (manager_name))

        # Set up viewlets
        manager.update()
        name = 'plone.searchbox'
        return [v for v in manager.viewlets if v.__name__ == name][0]
    def _get_viewlet(self, context):
        alsoProvides(context.REQUEST, IPlonethemeTeamraumLayer)

        view = BrowserView(context, context.REQUEST)
        manager_name = 'plone.portalheader'
        manager = queryMultiAdapter((context, context.REQUEST, view),
                                    IViewletManager, manager_name)
        self.assertTrue(manager)

        # Set up viewlets
        manager.update()
        name = 'plone.searchbox'
        return [v for v in manager.viewlets if v.__name__ == name][0]
Esempio n. 8
0
    def testViewletIsNotRendered(self):
        from zope.component import getMultiAdapter
        from Products.Five.browser import BrowserView
        from plone.app.layout.viewlets.interfaces import IAboveContent

        context = self.layer["portal"]
        request = self.layer["request"]
        view = BrowserView(context, request)

        abovecontent = getMultiAdapter((context, request, view), IAboveContent,
                                       name="plone.abovecontent")
        abovecontent.update()
        self.assertNotIn("Announcement", abovecontent.render())
Esempio n. 9
0
    def test_media_viewlet(self):
        keywords = ['album-a-la-une']
        view = getMultiAdapter((self.portal, self.request),
                               name='media_activation')
        # create video collection used to viewlet
        view.enable_media()
        album_collection = self.portal.albums.index
        query = [
            {
                'i': 'hiddenTags',
                'o': 'plone.app.querystring.operation.selection.is',
                'v': keywords
            },
        ]

        # Set hiddenTags and leadimage behaviors
        add_behavior('Folder', 'cpskin.core.behaviors.metadata.IHiddenTags')
        add_behavior('Folder',
                     'plone.app.contenttypes.behaviors.leadimage.ILeadImage')

        album_collection.query = query
        album = api.content.create(container=self.portal,
                                   type='Folder',
                                   id='testalbum')

        # getting viewlet
        view = BrowserView(self.portal, self.request)
        manager_name = 'plone.belowcontent'
        manager = queryMultiAdapter((self.portal, self.request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)
        manager.update()

        my_viewlet = [
            v for v in manager.viewlets if v.__name__ == 'cpskin.media'
        ]
        self.assertEqual(len(my_viewlet), 1)
        media_viewlet = my_viewlet[0]

        self.assertTrue(media_viewlet.available())
        self.assertEqual(
            media_viewlet.get_albums_collection().getPhysicalPath(),
            self.portal.albums.index.getPhysicalPath())
        self.assertEqual(len(media_viewlet.get_albums()), 0)

        # Set lead image to album folder
        add_leadimage_from_file(album, 'cpskinlogo.png')
        add_keyword(album, 'hiddenTags', keywords)
        self.assertEqual(len(media_viewlet.get_albums()), 1)
 def test_slider_viewlet_is_not_available_on_newsitem(self):
     view = BrowserView(self.portal['newsitem'], self.request)
     manager_name = 'plone.portalheader'
     alsoProvides(self.request, IImthemeBlueLayer)
     manager = queryMultiAdapter(
         (self.portal['newsitem'], self.request, view),
         IViewletManager,
         manager_name,
         default=None
     )
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlet = [v for v in manager.viewlets if v.__name__ == 'slider-viewlet']  # NOQA: E501
     self.assertEqual(len(my_viewlet), 0)
Esempio n. 11
0
 def test_shariff_buttons_viewlet_is_registered(self):
     view = BrowserView(self.portal['other-document'], self.request)
     manager_name = 'plone.abovecontenttitle'
     alsoProvides(self.request, INvaViewletsLayer)
     manager = queryMultiAdapter(
         (self.portal['other-document'], self.request, view),
         IViewletManager,
         manager_name,
         default=None
     )
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlet = [v for v in manager.viewlets if v.__name__ == 'shariff-buttons-viewlet']  # NOQA: E501
     self.assertEqual(len(my_viewlet), 1)
Esempio n. 12
0
 def setUp(self):
     self.portal = self.layer['portal']
     self.request = self.layer['request']
     setRoles(self.portal, TEST_USER_ID, ['Manager'])
     manager_name = 'plone.portaltop'
     view = BrowserView(self.portal, self.request)
     manager = queryMultiAdapter((self.portal, self.request, view),
                                 IViewletManager,
                                 manager_name,
                                 default=None)
     manager.update()
     self.my_viewlet = [
         v for v in manager.viewlets if v.__name__ == 'cpskin.banner'
     ][0]
Esempio n. 13
0
 def test_data_grid_demo_viewlet_is_registered(self):
     view = BrowserView(self.portal['other-document'], self.request)
     manager_name = 'plone.abovecontenttitle'
     alsoProvides(self.request, IDatagridfieldBehaviorexamplesLayer)
     manager = queryMultiAdapter(
         (self.portal['other-document'], self.request, view),
         IViewletManager,
         manager_name,
         default=None
     )
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlet = [v for v in manager.viewlets if v.__name__ == 'data-grid-demo-viewlet']  # NOQA: E501
     self.assertEqual(len(my_viewlet), 1)
Esempio n. 14
0
 def test_editors_notes_is_registered(self):
     view = BrowserView(self.portal['other-document'], self.request)
     manager_name = 'plone.abovecontenttitle'
     alsoProvides(self.request, IPolitikusContenttypesLayer)
     manager = queryMultiAdapter(
         (self.portal['other-document'], self.request, view),
         IViewletManager,
         manager_name,
         default=None)
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlet = [
         v for v in manager.viewlets if v.__name__ == 'editors-notes'
     ]  # NOQA: E501
     self.assertEqual(len(my_viewlet), 1)
Esempio n. 15
0
 def test_dipf_cookieswitch_is_registered(self):
     view = BrowserView(self.portal['other-document'], self.request)
     manager_name = 'plone.abovecontenttitle'
     alsoProvides(self.request, ICollectiveCookieswitcherLayer)
     manager = queryMultiAdapter(
         (self.portal['other-document'], self.request, view),
         IViewletManager,
         manager_name,
         default=None)
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlet = [
         v for v in manager.viewlets if v.__name__ == 'dipf.cookieswitch'
     ]  # NOQA: E501
     self.assertEqual(len(my_viewlet), 1)
 def test_actionsviewlet_is_registered(self):
     view = BrowserView(self.portal['other-document'], self.request)
     manager_name = 'plone.portalheader'
     alsoProvides(self.request, IImthemeBlueLayer)
     manager = queryMultiAdapter(
         (self.portal['other-document'], self.request, view),
         IViewletManager,
         manager_name,
         default=None)
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlet = [
         v for v in manager.viewlets if v.__name__ == 'actions-viewlet'
     ]  # NOQA: E501
     self.assertEqual(len(my_viewlet), 1)
Esempio n. 17
0
 def test_newsletter_actions_is_not_available_on_issue(self):
     setRoles(self.portal, TEST_USER_ID, ['Manager'])
     view = BrowserView(self.issue, self.request)
     manager_name = 'plone.abovecontentbody'
     alsoProvides(self.request, IProductsEasyNewsletterLayer)
     manager = queryMultiAdapter(
         (self.issue, self.request, view),
         IViewletManager,
         manager_name,
         default=None
     )
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlets = [v for v in manager.viewlets if v.__name__ == 'newsletter-actions']  # NOQA: E501
     self.assertEqual(len(my_viewlets), 0)
Esempio n. 18
0
 def test_newsletter_actions_is_empty_for_non_editors(self):
     logout()
     view = BrowserView(self.newsletter, self.request)
     manager_name = 'plone.abovecontentbody'
     alsoProvides(self.request, IProductsEasyNewsletterLayer)
     manager = queryMultiAdapter(
         (self.newsletter, self.request, view),
         IViewletManager,
         manager_name,
         default=None
     )
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlets = [v for v in manager.viewlets if v.__name__ == 'newsletter-actions']  # NOQA: E501
     self.assertEqual(len(my_viewlets), 1)
     self.assertNotIn(u"toc-nav newsletter", manager.render())
    def get_viewlet(self, context, manager_name, viewlet_name):
        # getting viewlet
        view = BrowserView(self.portal, self.request)
        manager = queryMultiAdapter((context, self.request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)
        manager.update()

        my_viewlet = [
            v for v in manager.viewlets if v.__name__ == viewlet_name
        ]
        self.assertEqual(len(my_viewlet), 1)
        viewlet = my_viewlet[0]
        return viewlet
 def test_custom_html_code_viewlet_is_registered(self):
     view = BrowserView(self.portal["other-document"], self.request)
     manager_name = "plone.portalfooter"
     alsoProvides(self.request, ICsBehaviorFooterhtmlcodeLayer)
     manager = queryMultiAdapter(
         (self.portal["other-document"], self.request, view),
         IViewletManager,
         manager_name,
         default=None,
     )
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlet = [
         v for v in manager.viewlets
         if v.__name__ == "custom-html-code-viewlet"
     ]  # NOQA: E501
     self.assertEqual(len(my_viewlet), 1)
Esempio n. 21
0
    def get_viewlet(self, context):
        alsoProvides(context.REQUEST, IFtwFooterLayer)
        view = BrowserView(context, context.REQUEST)
        manager_name = 'plone.portalfooter'

        manager = queryMultiAdapter((context, context.REQUEST, view),
                                    IViewletManager, manager_name)
        self.failUnless(manager)

        # Set up viewlets
        manager.update()
        name = 'ftw.footer.viewlet'
        viewlets = [v for v in manager.viewlets if v.__name__ == name]

        if len(viewlets) == 1:
            return viewlets[0]
        return None
 def test_newsletter_actions_is_registered_and_rendered(self):
     setRoles(self.portal, TEST_USER_ID, ["Manager"])
     view = BrowserView(self.newsletter, self.request)
     manager_name = "plone.abovecontentbody"
     alsoProvides(self.request, IProductsEasyNewsletterLayer)
     manager = queryMultiAdapter(
         (self.newsletter, self.request, view),
         IViewletManager,
         manager_name,
         default=None,
     )
     self.assertIsNotNone(manager)
     manager.update()
     my_viewlets = [
         v for v in manager.viewlets if v.__name__ == "newsletter-actions"
     ]  # NOQA: E501
     self.assertEqual(len(my_viewlets), 1)
     self.assertIn("toc-nav newsletter", manager.render())
Esempio n. 23
0
    def test_footer_viewlet(self):
        # getting viewlet
        view = BrowserView(self.portal, self.request)
        manager_name = 'plone.portalfooter'
        manager = queryMultiAdapter((self.portal, self.request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)
        manager.update()

        my_viewlet = [
            v for v in manager.viewlets if v.__name__ == 'cpskin.footer'
        ]  # noqa
        self.assertEqual(len(my_viewlet), 1)
        viewlet = my_viewlet[0]
        self.assertNotIn('Legal notice', viewlet.render())
        api.portal.set_registry_record('is_text_ready',
                                       True,
                                       interface=IGDPRSettings)
        self.assertIn('Legal notice', viewlet.render())
Esempio n. 24
0
 def breadcrumbs(self):
     view = BrowserView(self.context, self.request)
     viewlet = PathBarViewlet(self.context, self.request, view)
     viewlet.update()
     return viewlet.render()
Esempio n. 25
0
 def get_viewlet_manager(self, context, name='plone.htmlhead'):
     request = self.request
     view = BrowserView(context, request)
     manager = getMultiAdapter((context, request, view), IViewletManager,
                               name)
     return manager
Esempio n. 26
0
    def test_related_contacts_map_viewlet(self):
        add_behavior('Event',
                     'cpskin.core.behaviors.metadata.IRelatedContacts')

        event = api.content.create(container=self.folder,
                                   type='Event',
                                   id='myevent')

        # getting viewlet
        view = BrowserView(event, self.request)
        manager_name = 'plone.belowcontentbody'
        manager = queryMultiAdapter((event, self.request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)
        manager.update()

        my_viewlet = [
            v for v in manager.viewlets
            if v.__name__ == 'cpskin.related_contacts_map'
        ]  # noqa
        self.assertEqual(len(my_viewlet), 1)
        map_viewlet = my_viewlet[0]

        contacts = map_viewlet.get_contacts()
        self.assertEqual(contacts, [])
        self.assertFalse(map_viewlet.available())

        # add some contacts
        applyProfile(self.portal, 'collective.contact.core:default')
        add_behavior('person', ICoordinates.__identifier__)
        from collective.contact.core.behaviors import IContactDetails
        add_behavior('person', IContactDetails.__identifier__)
        directory = api.content.create(container=self.portal,
                                       type='directory',
                                       id='directory')
        person = api.content.create(container=directory,
                                    type='person',
                                    id='person')
        person.firstname = u'Foo'
        person.lastname = u'Bar'
        person.gender = u'F'
        person.street = u'Rue de la Vieille Sambre'
        person.number = u'34'
        person.zip_code = u'5190'
        person.city = u'Mornimont'
        person.use_parent_address = False
        notify(ObjectModifiedEvent(person))
        person.street = u'Zoning Industriel'
        person.number = u'34'
        person.zip_code = u'5190'
        person.city = u'Mornimont'
        # set related contact
        intids = getUtility(IIntIds)
        to_id = intids.getId(person)
        rv = RelationValue(to_id)
        event.belowContentContact = event.belowContentContact + [rv]
        self.assertTrue(map_viewlet.available())
        contacts = map_viewlet.get_contacts()
        self.assertEqual(len(contacts), 1)
        self.assertEqual(contacts[0], person)

        # Do not see duplicate
        event.aboveContentContact = event.aboveContentContact + [rv]
        contacts = map_viewlet.get_contacts()
        self.assertEqual(len(contacts), 1)
        self.assertEqual(contacts[0], person)

        person2 = api.content.create(directory, 'person', 'person2')
        person2.firstname = u'James'
        person2.lastname = u'Bond'
        person2.gender = u'M'
        person2.street = u"Boulevard d'avroy"
        person2.number = u'007'
        person2.zip_code = u'4000'
        person2.city = u'Liège'
        notify(ObjectModifiedEvent(person2))
        person2.street = u"Boulevard d'avroy"
        person2.number = u'007'
        person2.zip_code = u'4000'
        person2.city = u'Liège'
        person2.use_parent_address = False
        to_id2 = intids.getId(person2)
        rv2 = RelationValue(to_id2)
        event.aboveContentContact = event.aboveContentContact + [rv2]
        contacts = map_viewlet.get_contacts()
        self.assertEqual(len(contacts), 2)
        event.see_map = False
        self.assertFalse(map_viewlet.available())
        event.see_map = True

        geojson = map_viewlet.data_geojson()
        results = json.loads(geojson)
        self.assertEqual(results['type'], u'FeatureCollection')
        self.assertEqual(len(results['features']), 2)
        self.assertEqual(u'', results['features'][0]['properties']['image'])

        # add a logo
        core_path = '/'.join(os.path.dirname(__file__).split('/')[:-1])
        data_path = os.path.join(core_path, 'data')
        file_path = os.path.join(data_path, 'cpskinlogo.png')
        from plone.namedfile.file import NamedBlobImage
        namedblobimage = NamedBlobImage(data=open(file_path, 'r').read(),
                                        filename=unicode('cpskinlogo.png'))
        person.logo = namedblobimage
        geojson = map_viewlet.data_geojson()
        results = json.loads(geojson)
        self.assertEqual(
            u'http://nohost/plone/directory/person/@@images/logo/thumb',
            results['features'][0]['properties']['image'])
Esempio n. 27
0
    def test_use_parent_address_in_map(self):
        add_behavior('Event',
                     'cpskin.core.behaviors.metadata.IRelatedContacts')
        event = api.content.create(container=self.folder,
                                   type='Event',
                                   id='myevent')

        # getting viewlet
        view = BrowserView(event, self.request)
        manager_name = 'plone.belowcontentbody'
        manager = queryMultiAdapter((event, self.request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)
        manager.update()

        my_viewlet = [
            v for v in manager.viewlets
            if v.__name__ == 'cpskin.related_contacts_map'
        ]  # noqa
        self.assertEqual(len(my_viewlet), 1)
        map_viewlet = my_viewlet[0]

        contacts = map_viewlet.get_contacts()
        self.assertEqual(contacts, [])
        self.assertFalse(map_viewlet.available())

        # add some contacts
        applyProfile(self.portal, 'collective.contact.core:default')
        directory = api.content.create(container=self.portal,
                                       type='directory',
                                       id='directory')

        organization = api.content.create(container=directory,
                                          type='organization',
                                          id='organization')
        organization.title = u'IMIO'
        organization.street = u'Rue Léon Morel'
        organization.number = u'1'
        organization.zip_code = u'5032'
        organization.city = u'Isnes'
        organization.use_parent_address = False

        orga_child = api.content.create(container=organization,
                                        type='organization',
                                        id='organization')
        orga_child.title = 'DevOps'
        orga_child.use_parent_address = False

        # set related contact
        intids = getUtility(IIntIds)
        to_id = intids.getId(orga_child)
        rv = RelationValue(to_id)
        event.belowContentContact = [rv]
        add_behavior('organization', ICoordinates.__identifier__)
        notify(ObjectModifiedEvent(organization))

        self.assertTrue(map_viewlet.see_map_link(organization))
        self.assertFalse(map_viewlet.see_map_link(orga_child))
        data_geojson = map_viewlet.data_geojson()
        results = json.loads(data_geojson)
        self.assertEqual(len(results['features']), 0)

        orga_child.use_parent_address = True
        notify(ObjectModifiedEvent(orga_child))
        self.assertTrue(map_viewlet.see_map_link(orga_child))
        data_geojson = map_viewlet.data_geojson()
        results = json.loads(data_geojson)
        self.assertEqual(results['features'][0]['properties']['address'],
                         u'Rue L\xe9on Morel, 1<br />5032 Isnes')
Esempio n. 28
0
    def test_use_parent_address(self):
        add_behavior('Event',
                     'cpskin.core.behaviors.metadata.IRelatedContacts')
        event = api.content.create(container=self.folder,
                                   type='Event',
                                   id='myevent')

        # getting viewlet
        view = BrowserView(event, self.request)
        manager_name = 'plone.belowcontentbody'
        manager = queryMultiAdapter((event, self.request, view),
                                    IViewletManager,
                                    manager_name,
                                    default=None)
        self.assertIsNotNone(manager)
        manager.update()

        my_viewlet = [
            v for v in manager.viewlets
            if v.__name__ == 'cpskin.below_related_contacts'
        ]  # noqa
        self.assertEqual(len(my_viewlet), 1)
        below_viewlet = my_viewlet[0]

        contacts = below_viewlet.get_contacts()
        self.assertEqual(contacts, [])
        self.assertFalse(below_viewlet.available())

        # add some contacts
        applyProfile(self.portal, 'collective.contact.core:default')
        directory = api.content.create(container=self.portal,
                                       type='directory',
                                       id='directory')
        person = api.content.create(container=directory,
                                    type='person',
                                    id='person')
        person.firstname = u'Foo'
        person.lastname = u'Bar'
        person.gender = u'F'
        person.street = u'Zoning Industriel'
        person.number = u'34'
        person.zip_code = u'5190'
        person.city = u'Mornimont'
        person.use_parent_address = True

        # set related contact
        intids = getUtility(IIntIds)
        to_id = intids.getId(person)
        rv = RelationValue(to_id)
        event.belowContentContact = event.belowContentContact + [rv]
        self.assertTrue(below_viewlet.available())
        contacts = below_viewlet.get_contacts()
        self.assertEqual(len(contacts), 1)
        self.assertEqual(contacts[0], person)

        self.assertNotIn('Mornimont', below_viewlet.render())
        self.assertIn('Foo Bar', below_viewlet.render())

        event.belowVisbileFields = ('zip_code', )
        self.assertNotIn('5190', below_viewlet.render())
        self.assertNotIn('Foo', below_viewlet.render())