本文整理汇总了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;未经允许,请勿转载。 |
请发表评论