• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python component.queryMultiAdapter函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: publishTraverse

    def publishTraverse(self, request, name):
        try:
            obj = super(RESTTraverse, self).publishTraverse(request, name)
            if (not IContentish.providedBy(obj)
                    and not IService.providedBy(obj)):
                if isinstance(obj, VirtualHostMonster):
                    return obj
                else:
                    raise KeyError
        except KeyError:
            # No object, maybe a named rest service
            service = queryMultiAdapter((self.context, request),
                                        name=request._rest_service_id + name)
            if service is None:
                # No service, fallback to regular view
                view = queryMultiAdapter((self.context, request), name=name)
                if view is not None:
                    return view
                raise
            return service

        if name.startswith(request._rest_service_id):
            return obj

        # Do not handle view namespace
        if '@@' in request['PATH_INFO'] or '++view++' in request['PATH_INFO']:
            return obj

        # Wrap object to ensure we handle further traversal
        return RESTWrapper(obj, request)
开发者ID:plone,项目名称:plone.rest,代码行数:30,代码来源:traverse.py


示例17: handleApply

    def handleApply(self, action):
        data, errors = self.extractData()

        type_id = data['type']
        portal = getSite()
        base_url = self.context.absolute_url()
        adding_view = queryMultiAdapter((self.context, self.request), name='+')
        t = getattr(portal.portal_types, type_id, None)
        if t:
            # XXX: Added to support CMF 2.2 style add view actions
            context_state = getMultiAdapter((self.context, self.request),
                                            name='plone_context_state')
            addActionsById = dict([(a['id'], a['url'],) 
                                    for a in context_state.actions().get('folder/add', []) 
                                    if a['available'] and a['allowed']])

            # XXX: Added to support CMF 2.2 style add view actions
            if addActionsById.get(type_id, ''): # we have a non-empty URL
                url = addActionsById[type_id]
            elif adding_view and queryMultiAdapter((adding_view,
                                                    self.request),
                                                    name=t.factory):
                url = '%s/+/%s' % (base_url, t.factory)
            else:
                url = '%s/createObject?type_name=%s' % (base_url,
                                                        quote_plus(type_id))
        self.request.response.redirect(url)
开发者ID:sirkiwi,项目名称:semicinternet.theme.cambrils,代码行数:27,代码来源:manage.py


示例18: findView

def findView(tile, viewName):
    """Find the view to use for portlet/viewlet context lookup."""

    view = tile
    prequest = tile.request.get('PARENT_REQUEST', None)

    # Attempt to determine the underlying view name from the parent request
    # XXX: This won't work if using ESI rendering or any other
    # technique that doesn't use plone.subrequest
    if viewName is None and prequest is not None:
        ppublished = prequest.get('PUBLISHED', None)
        if IView.providedBy(ppublished):
            viewName = prequest['PUBLISHED'].__name__

    context = tile.context
    request = tile.request
    if prequest is not None:
        request = prequest

    if viewName is not None:
        view = queryMultiAdapter((context, request), name=viewName)

    if view is None:
        view = tile

    # Decide whether to mark the view
    # XXX: Again, this probably won't work well if not using plone.subrequest
    layoutPolicy = queryMultiAdapter((context, request), name='plone_layout')
    if layoutPolicy is not None:
        layoutPolicy.mark_view(view)

    return view
开发者ID:hatchddigital,项目名称:plone.app.standardtiles,代码行数:32,代码来源:utils.py


示例19: setgridstate

    def setgridstate(self):
        """Stores the current grid configuration (visible columns,
        column order, grouping, sorting etc.) persistent in dictstorage.
        """

        if not self.user_is_logged_in():
            return

        # extract the data
        state = self.request.get('gridstate', None)
        if not state or not isinstance(state, str):
            return

        if state == '{}':
            state = ''
        # get the tab view
        view_name = self.request.get('view_name', None)
        if not view_name:
            return

        listing_view = queryMultiAdapter((self.context, self.request),
                            name='tabbedview_view-%s' % view_name)
        if not listing_view:
            return

        # get the key for storing the state
        generator = queryMultiAdapter(
            (self.context, listing_view, self.request),
            IGridStateStorageKeyGenerator)
        key = generator.get_key()

        # store the data
        storage = IDictStorage(listing_view)
        storage.set(key, state)
开发者ID:Vinsurya,项目名称:Plone,代码行数:34,代码来源:tabbed.py


示例20: inherited_portlets

    def inherited_portlets(self):
        """Return the list of portlets inherited by the current context.

        Invisible (hidden) portlets are excluded.

        """
        context = aq_inner(self.context)

        data = []
        while not IPloneSiteRoot.providedBy(context):
            if IAcquirer.providedBy(context):
                context = aq_parent(aq_inner(context))
            else:
                context = context.__parent__

            # we get the contextual portlets view to access its utility methods
            view = queryMultiAdapter((context, self.request), name=self.__parent__.__name__)
            if view is not None:
                assignments = view.getAssignmentsForManager(self.manager)
                is_visible = lambda a: IPortletAssignmentSettings(a).get('visible', True)
                assignments_to_show = [a for a in assignments if is_visible(a)]
                base_url = view.getAssignmentMappingUrl(self.manager)
                data.extend(self.portlets_for_assignments(assignments_to_show, self.manager, base_url))

            assignable = queryMultiAdapter((context, self.manager), ILocalPortletAssignmentManager)
            if assignable is not None and assignable.getBlacklistStatus(CONTEXT_CATEGORY):
                # Current context has blocked inherited portlets, stop.
                break

        return data
开发者ID:davilima6,项目名称:plone.app.portlets,代码行数:30,代码来源:editmanager.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python component.queryUtility函数代码示例发布时间:2022-05-26
下一篇:
Python component.queryAdapter函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap