当前位置: 首页>>代码示例>>Python>>正文


Python component.queryMultiAdapter函数代码示例

本文整理汇总了Python中zope.component.queryMultiAdapter函数的典型用法代码示例。如果您正苦于以下问题:Python queryMultiAdapter函数的具体用法?Python queryMultiAdapter怎么用?Python queryMultiAdapter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了queryMultiAdapter函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: publishTraverse

    def publishTraverse(self, request, name):
        """Allow traversal to @@<view>/tilename/tileid
        """

        # 1. Look up the view, but keep this view as the traversal context in
        # anticipation of an id
        if self.view is None:
            tile_info = queryUtility(ITileType, name=name)
            if tile_info is None:
                raise KeyError(name)

            self.view = queryMultiAdapter((self.context, self.request,
                                           tile_info), self.targetInterface,
                name=name)
            if self.view is None:
                self.view = queryMultiAdapter((self.context, self.request,
                                               tile_info),
                    self.targetInterface)

            if self.view is None:
                raise KeyError(name)

            self.view.__name__ = name
            self.view.__parent__ = self.context

            return self
        # 2. Set the id and return the view we looked up in the previous
        # traversal step.
        elif getattr(self.view, 'tileId', None) is None:
            self.view.tileId = name
            return self.view

        raise KeyError(name)
开发者ID:davisagli,项目名称:plone.app.tiles,代码行数:33,代码来源:traversal.py

示例2: __call__

    def __call__(self):
        alsoProvides(self, IViewView)
        manager = queryMultiAdapter(
            (self.context, self.request, self),
            IViewletManager, name='plone.belowcontent'
        )
        viewlet = queryMultiAdapter(
            (self.context, self.request, self, manager),
            IViewlet, name='plone.comments'
        )
        if viewlet is not None:
            viewlet.form = TileCommentForm
            viewlet.update()

            if isinstance(viewlet.form, TileCommentForm):
                viewlet.form.action = self.url

            # Fix submit redirect from tile to context
            if 'location' in self.request.response.headers:
                location = self.request.response.getHeader('location')
                self.request.response.redirect(''.join([
                    self.context.absolute_url(), '#', location.split('#')[-1]
                ]))
            return protect(u'<html><body>%s</body></html>' % viewlet.render())
        else:
            return u'<html><body></body></html>'
开发者ID:plone,项目名称:plone.app.standardtiles,代码行数:26,代码来源:discussion.py

示例3: test_portlet_inheritance

    def test_portlet_inheritance(self):
        portal = self.layer['portal']
        folder = portal.folder2
        request = folder.REQUEST
        view = folder.restrictedTraverse('@@plone')
        alsoProvides(view, IViewView)
        self.assertTrue(IViewView.providedBy(view))
        viewlet_manager = queryMultiAdapter(
            (folder, request, view),
            IContentProvider,
            'plone.abovecontentbody')
        viewlet = queryMultiAdapter(
            (folder, request, view, viewlet_manager),
            IViewlet,
            'collective.calltoaction')
        self.assertTrue(viewlet is not None)
        viewlet.update()
        # The portlet from the test fixture is blocked.
        self.assertEqual(len(viewlet.data), 0)

        # Show the action globally.  This ignores portlet inheritance.
        registry = getUtility(IRegistry)
        settings = registry.forInterface(
            ICollectiveCalltoactionSettings, check=False)
        self.assertFalse(settings.show_global)
        settings.show_global = True

        # Now we should see the portlet
        viewlet.update()
        self.assertEqual(len(viewlet.data), 1)
开发者ID:collective,项目名称:collective.calltoaction,代码行数:30,代码来源:test_viewlet.py

示例4: get_previews

    def get_previews(self, **kwargs):
        catalog = getToolByName(self.context, 'portal_catalog')
        result = catalog(self._query(**kwargs))

        batch = BaseBatch(result, self.bsize, start=self.bstart)
        previews = []

        if self.bstart >= batch.end:
            return ''

        for brain in batch:
            obj = brain.getObject()

            adapter = queryMultiAdapter((obj, obj.REQUEST), IWorkspacePreview)

            # Try to get a specific preview adapter
            for extension in self.get_extensions(obj.getContentType()):
                specific = queryMultiAdapter(
                    (obj, obj.REQUEST),
                    IWorkspacePreview,
                    name=extension)

                if specific is not None:
                    adapter = specific
                    break

            previews.append(adapter)
        return previews
开发者ID:4teamwork,项目名称:ftw.workspace,代码行数:28,代码来源:preview.py

示例5: test_foo

    def test_foo(self):
        index = queryMultiAdapter((Spionisto(), TestRequest()), name='index')
        self.assertNotEqual(index, None)

        # There is no view called 'index2'
        index2 = queryMultiAdapter((Spionisto(), TestRequest()), name='index2')
        self.assertEqual(index2, None)
开发者ID:misaelnieto,项目名称:spionisto,代码行数:7,代码来源:test_spionisto.py

示例6: __call__

    def __call__(self):

        support = queryMultiAdapter((self.context, self.request), name="epub.support")
        if not getattr(support, "can_download", lambda: False)():
            raise NotFound(self.context, self.__name__, self.request)

        # Fallback ePub provided
        if self.fallback:
            return self.request.response.redirect(self.fallback)

        epub = queryMultiAdapter((self.context, self.request), name="epub.body")
        body = epub()
        css = epub.css()

        ecover = queryMultiAdapter((self.context, self.request), name="epub.cover")
        cover = ecover(header=False, safe=True)

        output = StringIO()
        html2epub = queryUtility(IHtml2EPub)
        html2epub(
            body,
            cover,
            output,
            title=self.context.Title(),
            base_url=self.context.absolute_url(),
            css=css,
            cookies=self.request.cookies,
        )

        response = self.request.response
        response.setHeader("Content-Type", "application/xml+epub")
        response.setHeader("Content-Disposition", "attachment; filename=%s.epub" % self.context.id)

        output.seek(0)
        return output.read()
开发者ID:razvanch,项目名称:eea.epub,代码行数:35,代码来源:download.py

示例7: publishTraverse

    def publishTraverse(self, request, name):
        # 1. Look for a named traverser plugin.
        named_traverser = queryMultiAdapter((self.context, request),
                                            interfaces.ITraverserPlugin,
                                            name=name)
        if named_traverser is not None:
            try:
                return named_traverser.traverse(name)
            except NotFound:
                pass

        # 2. Named traverser plugin was of no use, let's try a generic one.
        traverser = queryMultiAdapter((self.context, request),
                                      interfaces.ITraverserPlugin)
        if traverser is not None:
            try:
                return traverser.traverse(name)
            except NotFound:
                pass

        # 3. The traversers did not have an answer, so let's see whether it is
        #    a view.
        view = queryMultiAdapter((self.context, request), name=name)
        if view is not None:
            return view

        raise NotFound(self.context, name, request)
开发者ID:achouhans,项目名称:schooltool-2.8.5,代码行数:27,代码来源:traverser.py

示例8: move

    def move(self, pos):
        """
        Move the item. x and y are in view coordinates.
        """
        super(DropZoneInMotion, self).move(pos)
        item = self.item
        view = self.view
        x, y = pos

        current_parent = view.canvas.get_parent(item)
        over_item = view.get_item_at_point((x, y), selected=False)

        if not over_item:
            view.dropzone_item = None
            view.window.set_cursor(None)
            return

        if current_parent and not over_item:  # are we going to remove from parent?
            adapter = component.queryMultiAdapter((current_parent, item), IGroup)
            if adapter:
                view.window.set_cursor(OUT_CURSOR)
                view.dropzone_item = current_parent
                current_parent.request_update(matrix=False)

        if over_item:
            # are we going to add to parent?
            adapter = component.queryMultiAdapter((over_item, item), IGroup)
            if adapter and adapter.can_contain():
                view.dropzone_item = over_item
                view.window.set_cursor(IN_CURSOR)
                over_item.request_update(matrix=False)
开发者ID:dieterv,项目名称:gaphor,代码行数:31,代码来源:diagramtools.py

示例9: subtype

def subtype(obj, evt):
    """ Subtype as faceted navigable
    """
    context = obj
    portal_type = getattr(context, 'portal_type', None)
    if portal_type != 'EEARelationsContentType':
        return

    # Subtype as faceted navigable
    subtyper = queryMultiAdapter((context, context.REQUEST),
        name=u'faceted_search_subtyper', default=queryMultiAdapter(
            (context, context.REQUEST), name=u'faceted_subtyper'))

    if subtyper:
        subtyper.enable()

    # Add default widgets
    widgets = queryMultiAdapter((context, context.REQUEST),
                                name=u'default_widgets.xml')
    if not widgets:
        return

    xml = widgets()
    environ = SnapshotImportContext(context, 'utf-8')
    importer = queryMultiAdapter((context, environ), IBody)
    if not importer:
        return
    importer.body = xml
开发者ID:catalinmititiuc,项目名称:eea.relations,代码行数:28,代码来源:events.py

示例10: testSchemaDisplayWithWidget

    def testSchemaDisplayWithWidget(self):
        self.assertEqual(
            component.queryMultiAdapter((ob, request), name='view.html'),
            None)
        xmlconfig(StringIO(template % ('''
          <view
              type="zope.publisher.interfaces.browser.IBrowserRequest"
              for="zope.schema.interfaces.IField"
              provides="zope.formlib.interfaces.IDisplayWidget"
              factory="zope.app.form.browser.DisplayWidget"
              permission="zope.Public"
              />

          <browser:schemadisplay
              for="zope.app.form.browser.tests.test_directives.IC"
              schema="zope.app.form.browser.tests.test_directives.Schema"
              name="view.html"
              label="View a ZPT page"
              fields="text"
              permission="zope.Public">

            <browser:widget
                field="text"
                class="zope.app.form.browser.tests.test_directives.SomeWidget"
                displayWidth="30"
                extra="foo"
                />
          </browser:schemadisplay>
            ''')))

        view = component.queryMultiAdapter((ob, request), name='view.html')
        self.assert_(hasattr(view, 'text_widget'))
        self.assert_(isinstance(view.text_widget, SomeWidget))
        self.assertEqual(view.text_widget.extra, u'foo')
        self.assertEqual(view.text_widget.displayWidth, 30)
开发者ID:CGTIC,项目名称:Plone_SP,代码行数:35,代码来源:test_directives.py

示例11: restful_query_view

def restful_query_view(request, obj, name=""):
    method = request.method
    target = methods.get(method)
    result = queryMultiAdapter((obj, request), target, name=name)
    if result is None and method != FALLBACK:
        result = queryMultiAdapter((obj, request), target, name=name)
    return result
开发者ID:novareto,项目名称:shop_hijack_project,代码行数:7,代码来源:utils.py

示例12: testSchemaDisplay

    def testSchemaDisplay(self):
        self.assertEqual(
            component.queryMultiAdapter((ob, request), name='view.html'),
            None)
        xmlconfig(StringIO(template % ('''
          <view
              type="zope.publisher.interfaces.browser.IBrowserRequest"
              for="zope.schema.interfaces.IField"
              provides="zope.formlib.interfaces.IDisplayWidget"
              factory="zope.app.form.browser.DisplayWidget"
              permission="zope.Public"
              />

          <browser:schemadisplay
              for="zope.app.form.browser.tests.test_directives.IC"
              schema="zope.app.form.browser.tests.test_directives.Schema"
              name="view.html"
              label="View a ZPT page"
              fields="text"
              permission="zope.Public" />
            ''')))

        v = component.queryMultiAdapter((ob, request), name='view.html')
        # expect to fail as standard macros are not configured
        self.assertRaises(TraversalError, v)
开发者ID:CGTIC,项目名称:Plone_SP,代码行数:25,代码来源:test_directives.py

示例13: testEditFormWithMenu

    def testEditFormWithMenu(self):
        self.assertEqual(
            component.queryMultiAdapter((ob, request), name='edit.html'),
            None)
        xmlconfig(StringIO(template % ('''
          <browser:menu id="test_menu" title="Test menu"/>
          <view
              type="zope.publisher.interfaces.browser.IBrowserRequest"
              for="zope.schema.interfaces.ITextLine"
              provides="zope.formlib.interfaces.IInputWidget"
              factory="zope.app.form.browser.TextWidget"
              permission="zope.Public"
              />
          <browser:editform
              for="zope.app.form.browser.tests.test_directives.IC"
              schema="zope.app.form.browser.tests.test_directives.Schema"
              name="edit.html"
              label="Edit a ZPT page"
              fields="text"
              permission="zope.Public"
              menu="test_menu"
              title="Test View"
              />
            ''')))

        v = component.queryMultiAdapter((ob, request), name='edit.html')
        # expect to fail as standard macros are not configured
        self.assertRaises(TraversalError, v)
开发者ID:CGTIC,项目名称:Plone_SP,代码行数:28,代码来源:test_directives.py

示例14: query

    def query(self, default=None):
        request = self.request
        content = self.getLocation()
        if content is None:
            return

        item = IItem(content, None)

        title = u''
        description = u''
        if item is not None:
            title = item.title
            description = item.description

        view = queryMultiAdapter((content, request), IContentViewView)
        if view is not None:
            url = '%s/%s'%(absoluteURL(content, request), view.name)
        else:
            url = '%s/'%absoluteURL(content, request)

        return {'url': url,
                'title': title or _('[No title]'),
                'content': content,
                'icon': queryMultiAdapter((content, request), name='zmi_icon'),
                'description': description or u''}
开发者ID:Zojax,项目名称:zojax.content.table,代码行数:25,代码来源:location.py

示例15: getTileViewByName

    def getTileViewByName(self, tile_name):
        """We look up for adapter from ``(context, request, tileType)`` to an
        appropriate interface. The default is to use the unnamed adapter, but
        this can be overridden by registering a named adapter with the name of
        the tile type. This way, a custom add/edit view can be registered for
        a particular type of tile.
        """

        tile_info = queryUtility(ITileType, name=tile_name)
        if tile_info is None:
            raise KeyError(tile_name)

        view = queryMultiAdapter((self.context, self.request, tile_info),
                                 self.targetInterface, name=tile_name)

        if view is None:
            view = queryMultiAdapter((self.context, self.request, tile_info),
                                     self.targetInterface)

        if view is None:
            raise KeyError(tile_name)

        view.__name__ = tile_name
        view.__parent__ = self.context

        return view
开发者ID:plone,项目名称:plone.app.tiles,代码行数:26,代码来源:traversal.py


注:本文中的zope.component.queryMultiAdapter函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。