Annotation of kupuMPIWG/plone/kupu_plone_layer/resolveuid.py, revision 1.1.1.1
1.1 dwinter 1: ## Script (Python) "resolveuid"
2: ##title=Retrieve an object using its UID
3: ##bind container=container
4: ##bind context=context
5: ##bind namespace=
6: ##bind script=script
7: ##bind subpath=traverse_subpath
8: ##parameters=
9: # (reference_url is supposed to do the same thing, but is broken)
10: from Products.CMFCore.utils import getToolByName
11: from Products.PythonScripts.standard import html_quote
12:
13: request = context.REQUEST
14: response = request.RESPONSE
15:
16: uuid = traverse_subpath.pop(0)
17: reference_tool = getToolByName(context, 'reference_catalog')
18: obj = reference_tool.lookupObject(uuid)
19: if not obj:
20: return context.standard_error_message(error_type=404,
21: error_message='''The link you followed appears to be broken''')
22:
23: if traverse_subpath:
24: traverse_subpath.insert(0, obj.absolute_url())
25: target = '/'.join(traverse_subpath)
26: else:
27: target = obj.absolute_url()
28:
29: if request.QUERY_STRING:
30: target += '?' + request.QUERY_STRING
31: return response.redirect(target)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>